C# LINQ to XML
NET 3.5 的时候出现了 LINQ to XML 也确实挺好用的。
//注意 XDocument.Load(Path).Root.Elements("Order")
string Path = HttpContext.Current.Server.MapPath("/data/Orders.xml");
var List = (from p in XDocument.Load(Path).Root.Elements("Order")
select new Orders
{
OrderID = int.Parse(p.Element("OrderID").Value),
ShipCountry = p.Element("ShipCountry").Value,
CustomerID = p.Element("CustomerID").Value
}
).OrderBy(c => c.OrderID).Take(3).ToList();
//关联查询,主要用到 join
IEnumerable<XElement> elementXmlOrder = XDocument.Load(pathOrders).Root.Elements("Order");
IEnumerable<XElement> elementXmlCustomer = XDocument.Load(pathCustomers).Root.Elements("Customer");
var orlist = (from p in elementXmlOrder
select new
{
OrderID = int.Parse(p.Element("OrderID").Value),
ShipCountry = p.Element("ShipCountry").Value,
CustomerID = p.Element("CustomerID").Value
});
var cslist = (from p in elementXmlCustomer
select new
{
CustomerID = p.Element("CustomerID").Value,
CompanyName = p.Element("CompanyName").Value,
ContactName = p.Element("ContactName").Value
});
var data = (from or in orlist
join cs in cslist on or.CustomerID equals cs.CustomerID
select new
{
OrderID = or.OrderID,
ShipCountry = or.ShipCountry,
CustomerID = or.CustomerID,
ContactName = cs.ContactName,
CompanyName = cs.CompanyName
});
比较简单,就写到这!