C# 使用Linq读取XML的第二次迭代
我有一个在C#中运行的Web服务,它使用XML文件与外部方通信。所有这些都很好,但现在我需要扫描一个XML文件,它有两个元素需要迭代。 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
<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