Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq读取XML的第二次迭代_C#_Asp.net_Xml_Linq - Fatal编程技术网

C# 使用Linq读取XML的第二次迭代

C# 使用Linq读取XML的第二次迭代,c#,asp.net,xml,linq,C#,Asp.net,Xml,Linq,我有一个在C#中运行的Web服务,它使用XML文件与外部方通信。所有这些都很好,但现在我需要扫描一个XML文件,它有两个元素需要迭代。 XML的布局与下面的布局相同 <Order> <OrderLine> <OrderID>5</OrderID> <Description>OrderDescription</Description> <Value>150&l

我有一个在C#中运行的Web服务,它使用XML文件与外部方通信。所有这些都很好,但现在我需要扫描一个XML文件,它有两个元素需要迭代。 XML的布局与下面的布局相同

<Order>
    <OrderLine>
        <OrderID>5</OrderID>
        <Description>OrderDescription</Description>
        <Value>150</Value>
        <Option>
            <OptionID>15</OptionID>
            <OptionDescription>OptionDescription</OptionDescription>
        </Option>
        <Option>
            <OptionID>16</OptionID>
            <OptionDescription>Another Option</OptionDescription>
        </Option>
    <OrderLine>
    <OrderLine>
        <OrderID>5</OrderID>
        <Description>OrderDescription</Description>
        <Value>150</Value>
        <Option>
            <OptionID>5</OptionID>
            <OptionDescription>OptionDescription</OptionDescription>
        </Option>
    <OrderLine>
</Order>
我把例外情况缩小到问题的范围。它就在这条线上

Options = (from option in lines.Elements("Option")
           where option.HasElements
           select new Option() {
               OptionId = option.Element("OptionID").Value,
               Description = option.Element("OptionDescription").Value
           }).ToList()
Options是一个IEnumerable,其类为Option。选项类有两个变量,OptionID和Description。
关于如何正确引用对象有什么想法吗?

不应该是:

option.Element("OptionDescription").Value
而不是:

option.Element("Description").Value

什么存储在队列中


检查选项和行是否不为空。

哪个对象是
null
?@eddie\u cat代码行中的选项对象。它没有得到任何值,而我在queryGood点中没有看到任何错误。键入此内容时出错。但代码中的所有内容都是正确的。如果这确实是一个错误,说明本身不是空的,而选项对象不是空的吗?@RobvanBarneveld我想可能是键入错误导致option.Element(“说明”)返回null,然后当您试图从中获取Value属性时,抛出null引用异常。
option.Element("Description").Value