2
我有一個XML文件,這樣從名稱不同的XML節點
<root>
<segmentNameA attributeName="10" />
<segmentNameB attributeName="50" />
</root>
這裏獲取同一屬性的總和是我的代碼:
XPathDocument xPathDocument = new XPathDocument(analysisFileToProcess);
XPathNavigator Navigator = xPathDocument.CreateNavigator();
我想獲得的所有的總和attributeName屬性(10 + 50)。
這就是我做
var sum /*want to obtain 60*/ = Navigator.Select(Navigator.Compile("sum(/root/*[self::segmentNameA or self::segmentNameB]/@attributeName)"));
我得到一個表達式「有一個無效令牌」。
然而,當我做到這一點
var nodes = Navigator.Select(Navigator.Compile("/root/*[self::segmentNameA or self::segmentNameB]"));
我得到所有包含我想總結的屬性的節點。
而當我這樣做
var nodes = Navigator.Select(Navigator.Compile("/root/*[self::segmentNameA or self::segmentNameB]/@attributeName"));
我得到的屬性列表。爲什麼我不能在這個上使用sum函數?
難道有人請向我指出我做錯了什麼?
事實上,編輯,感謝指針(仍然沒有工作,雖然)。 –
@ G.Abitbol,我已經更新了我的答案。 –
基里爾,現在我想到了,我收到了這個錯誤信息,儘管它非常簡單,但我沒有想到在我的導航器上使用其他方法......現在它像一個魅力。非常感謝。 –