我想選擇使用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