C # simple examples of linq to xml,
Data. xml
1 <?xml version="1.0" encoding="utf-8" ?> 2 <Data> 3 <Products> 4 <Product Name="West Side Story" Price="9.99" SupplierID="1" /> 5 <Product Name="Assassins" Price="14.99" SupplierID="2" /> 6 <Product Name="Frogs" Price="13.99" SupplierID="1" /> 7 <Product Name="Sweeney Todd" Price="10.99" SupplierID="3" /> 8 </Products> 9 10 <Suppliers>11 <Supplier Name="Solely Sondheim" SupplierID="1" />12 <Supplier Name="CD-by-CD-by-Sondheim" SupplierID="2" />13 <Supplier Name="Barbershop CDs" SupplierID="3" />14 </Suppliers>15 </Data>
Search for products with a price of more than 10 using linq to xml, and print the Supplier name and product name;
1 XDocument doc = XDocument.Load("data.xml"); 2 var filtered = from p in doc.Descendants("Product") 3 join s in doc.Descendants("Supplier") 4 on (int)p.Attribute("SupplierID") 5 equals (int)s.Attribute("SupplierID") 6 where (decimal)p.Attribute("Price") > 10 7 select new 8 { 9 ProductName = (string)p.Attribute("Name"),10 SupplierName = (string)s.Attribute("Name")11 };12 13 foreach (var v in filtered)14 {15 Console.WriteLine("SupplierName={0} , ProductName={1}", v.SupplierName, v.ProductName);16 }
Output
SupplierName = CD-by-Sondheim, ProductName = Assassins
SupplierName = Solely Sondheim, ProductName = Frogs
SupplierName = Barbershop CDs, ProductName = Sweeney Todd
References
1. in-depth understanding of C # (version 2nd );