【发布时间】:2012-01-20 17:34:09
【问题描述】:
对于 LINQ to XML 非常陌生。
我有以下文件:
<?xml version="1.0"?>
<DIDemo>
<PurchaseOrders>
<PurchaseOrder date="2011-11-15" purchaseordernumber="PO-1234-1234" suppliername="The Greatest Supplier">
<LineItems>
<LineItem productcode="PRD-001" productname="A Cool Product" quantity="3" unitprice="276.99"/>
<LineItem productcode="PRD-056" productname="A Unique Product" quantity="5" unitprice="316.99"/>
</LineItems>
</PurchaseOrder>
<PurchaseOrder date="2011-11-11" purchaseordernumber="PO-1231-1231" suppliername="The Largest Supplier">
<LineItems>
<LineItem productcode="PRD-025" productname="A Useful Product" quantity="8" unitprice="96.99"/>
<LineItem productcode="PRD-014" productname="A Wonderful Product" quantity="1" unitprice="916.99"/>
</LineItems>
</PurchaseOrder>
</PurchaseOrders>
</DIDemo>
我正在尝试一个非常简单的查询来获取基于 purchaseordernumber 属性的采购订单。最终目标是从采购订单节点(属性和行项目)中创建一个 c# 对象。
我正在尝试的查询如下(我把它分成几部分来尝试看看问题出在哪里):
var document = XDocument.Load(PurchaseOrdersFilePath);
var partial1 = document.Element("PurchaseOrders"); //This returns null
var partial2 = partial1.Elements("PurchaseOrder"); //This one blows up
var final = partial2.Single(po => po.Attribute("purchaseordernumber") == criterion.PropertyValue);
如果这不起作用。查询这个的正确方法是什么?
感谢您的帮助。
【问题讨论】:
标签: c# linq-to-xml