获取XDocument的值

时间:2014-01-13 17:10:24

标签: c# .net xml linq-to-xml

我知道我们有很多关于xml的话题,但是我无法让它工作。 我有这个xml:

<OrderRoot>
   <Order>
     <Client>Company Company</Client>
     <Cod>0000</Cod>
   </Order>
   <Itens>
     <Item Sequence="01">
       <Product>54321</Product>
       <Description>xxxxxxx</Description>
     </Item>
     <Item Sequence="02">
       <Product>12345</Product>
       <Description>xxxxxxx</Description>
     </Item>
     <Item Sequence="03">
       <Product>123456</Product>
       <Description>xxxxxxx</Description>
     </Item>      
   </Itens>
 </OrderRoot>

我的代码:

   order.Client = xmlDocument.Descendants("Client").First().Value;
   order.A1_Codigo = xmlDocument.Descendants("Cod").First().Value;

   foreach (XElement item in xmlDocument.Descendants("Itens"))
   {
       //EDITed
       var aux = item.Element("Product").Value; //Get the null reference exception here.
   }

但是我总是在foreach循环中获得系统空引用。工作正常之前的订单。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

产品不是Items的直接子项,这就是您获得异常的原因。尝试更改循环源:

foreach (XElement item in xmlDocument.Descendants("Itens").Elements("Item"))