xiacy

导航

1.4.2 用LINQ to XML 对 XML 文件进行处理

<?xml version="1.0" encoding="utf-8" ?>
<Data>
  <Products>
    <Product Name="West Side Story" Price="9.99" SupplierID="1"></Product>
    <Product Name="Assassins" Price="14.99" SupplierID="2"></Product>
    <Product Name="Frogs" Price="13.99" SupplierID="1"></Product>
    <Product Name="Sweeney Todd" Price="10.99" SupplierID="3"></Product>
  </Products>

  <Suppliers>
    <Sopplier Name="Solely Sondheim" SupplierID="1"></Sopplier>
    <Sopplier Name="CD-by-CD-by-Sondheim" SupplierID="2"></Sopplier>
    <Sopplier Name="Barbershop CDs" SupplierID="3"></Sopplier>
  </Suppliers>
</Data>
XDocument doc = XDocument.Load("data.xml");
var filtered = from p in doc.Descendants("Product")
    join s in doc.Descendants("Sopplier")
    on (int)p.Attribute("SupplierID")
    equals (int)s.Attribute("SupplierID")
    where (decimal)p.Attribute("Price") > 10
    orderby (string)s.Attribute("Name"), (string)p.Attribute("Name")
    select new
    {
        SupplierName = (string)s.Attribute("Name"),
        ProductName = (string)p.Attribute("Name")
    };
foreach(var v in filtered)
{
    Console.WriteLine("Supplier={0};Product={1}",v.SupplierName,v.ProductName);
}

 

posted on 2012-04-24 23:11  xiacy  阅读(160)  评论(0编辑  收藏  举报