1. 程式人生 > >C# linq to xml 簡單示例

C# linq to xml 簡單示例

bar red utf-8 pro int als new sas {0}

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>

通過 linq to xml ,查找價格超過10的產品,並打印供應商名稱與產品名稱;

 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 }

輸出

SupplierName=CD-by-CD-by-Sondheim , ProductName=Assassins
SupplierName=Solely Sondheim , ProductName=Frogs
SupplierName=Barbershop CDs , ProductName=Sweeney Todd

參考資料

1、深入理解C#(第2版);

C# linq to xml 簡單示例