2014-01-13 46 views
0

我知道我们有很多关于xml的主题,但我无法得到它的工作。 我有这样的XML:获取XDocument的值

<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循环系统空引用。之前的订单工作正常。

这里做什么错了?

+0

确切地说'pedido'定义在哪里?因为现在,这是你的空引用。 –

+0

对不起,我编辑过。订单是一个包含itens内部列表和其他属性的对象。 – gog

+0

好的,所以调试你的代码,找出什么是空的,为什么。有了这样一个小窗户,我们很难告诉你什么是错的。你甚至没有告诉我们哪一行和什么对象都是空的。 – tnw

回答

1

产品不是Itens的直接子女,这就是为什么你会得到一个例外。尝试改变你的循环来源:

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