我想选择使用LINQ节点,但我不明白为什么这个简单的查询不起作用。无法选择与LINQ的XElements
我的XML是这样的:
<config>
<func_list current_app="GSCC" flag="0">
<func id="GSCC">
<BLOCKS>
<BLOCK id="1" type="ACTIONS">
<ITEMS>
<ITEM id="1" type="UINT32" size="1" value="1" />
<ITEM id="2" type="UINT32" size="1" value="5" />
<ITEM id="3" type="UINT32" size="1" value="0" />
</ITEMS>
</BLOCK>
</BLOCKS>
</func>
</func_list>
</config>
现在,我有一个的XElement(_funcNode)指向 '功能' 节点:
IEnumerable<XElement> xBlocks = from el in _funcNode.Descendants("BLOCK")
where el.Attribute("type").Value == "ACTIONS"
select el;
if (!xBlocks.Any()) return false;
另外,xBlocks.Any()抛出System.NullReferenceException异常。 有什么想法?
选择永远不会返回'null'。如果你得到一个NRE,那么你没有使用你展示的代码。 – Servy 2014-09-24 15:19:33
这可能会给你一个错误'el.Attribute(“type”)。Value' – csharpwinphonexaml 2014-09-24 15:22:46
你的例子工作正常:https://dotnetfiddle.net/vOmeXz – 2014-09-24 15:26:46