C# 使用Linq访问XML
我有以下结构的XML文档:C# 使用Linq访问XML,c#,.net,xml,linq,linq-to-xml,C#,.net,Xml,Linq,Linq To Xml,我有以下结构的XML文档: <dipOrders> <interchangeInfo senderEdiCode="LSC58" senderEdiCodeQal="ZZ" receiverEdiCode="15274" receiverEdiCodeQal="ZZ" syntax="X12" syntaxId="X" syntaxVersion="003010"/> <order orderNumber="219299" orderDate="20
<dipOrders>
<interchangeInfo senderEdiCode="LSC58" senderEdiCodeQal="ZZ" receiverEdiCode="15274" receiverEdiCodeQal="ZZ" syntax="X12" syntaxId="X" syntaxVersion="003010"/>
<order orderNumber="219299" orderDate="2012-12-05T00:00:00" validityDate="2012-12-05T00:00:00">
<buyer name="LEAR MTO">
<partyCode buyerCode="811567924"/>
</buyer>
<supplier name="BRIDGE OF WEIR LEATHER CO">
<partyCode buyerCode="749630"/>
</supplier>
<orderConsignee name="LEAR MEXICAN SEATING CORP">
<partyCode buyerCode="LSC59"/>
<orderLine description="LEA DC 378 HERO 6RSB 5B8" orderNumber="246767" engineeringChangeNumber="N">
<partyCode buyerCode="DC378105H6RSB5B8AA"/>
<cumulativeQuantity date="2012-12-04T00:00:00" quantity="0"/>
<orderQuantity quantity="0" commitmentLevel="Firm" timingQualifier="Weekly" shipDate="2012-12-05T00:00:00"/>
</orderLine>
<orderLine description="LEA DC 378 HERO 6RSB 5V0" orderNumber="246767" engineeringChangeNumber="N">
<partyCode buyerCode="DC378105H6RSB5V0AA"/>
<cumulativeQuantity date="2012-12-04T00:00:00" quantity="0"/>
<orderQuantity quantity="0" commitmentLevel="Firm" timingQualifier="Weekly" shipDate="2012-12-05T00:00:00"/>
</orderLine>
但我得到“对象引用未设置为对象实例”错误。为什么?您试图从
orderLine
元素获取orderNumber
元素。。。但这是一种属性。顺便说一句,现在还不清楚为什么要从中创建匿名类型,或者为什么要从查询表达式开始。我会这样写:
var orderNumbers = doc.Descendants("orderLine")
.Select(x => (int) x.Attribute("orderNumber"));
foreach (int orderNumber in orderNumbers)
{
Console.WriteLine(orderNumber);
}
您正试图从
orderLine
元素中获取orderNumber
元素。。。但这是一种属性。顺便说一句,现在还不清楚为什么要从中创建匿名类型,或者为什么要从查询表达式开始。我会这样写:
var orderNumbers = doc.Descendants("orderLine")
.Select(x => (int) x.Attribute("orderNumber"));
foreach (int orderNumber in orderNumbers)
{
Console.WriteLine(orderNumber);
}
那么,在为每个orderLine对象同时创建记录时,我如何访问orderQuantity属性呢?在为每个orderLine对象同时创建记录时,我如何访问orderQuantity属性呢?