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,我已经更新了我的答案。 –
基里尔,现在我想到了,我收到了这个错误信息,尽管它非常简单,但我没有想到在我的导航器上使用其他方法......现在它像一个魅力。非常感谢。 –