我有一个这样的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 函数?
有人可以向我指出我做错了什么吗?