.net 我可以将XPath函数与XPathNavigator一起使用吗?
我在文档的根目录下有一个XPathNavigator。向下几层,有一组数值,我想求和。我总是可以循环遍历节点并自己添加它们,但是因为我知道XPath规范包含一个求和函数,所以我决定尝试使用它。我遇到了一个错误.net 我可以将XPath函数与XPathNavigator一起使用吗?,.net,xml,xpath,.net,Xml,Xpath,我在文档的根目录下有一个XPathNavigator。向下几层,有一组数值,我想求和。我总是可以循环遍历节点并自己添加它们,但是因为我知道XPath规范包含一个求和函数,所以我决定尝试使用它。我遇到了一个错误 System.Xml.XPath.XPathException - Expression must evaluate to a node-set. 这是我的密码 XPathDocument doc = new XPathDocument(new StringReader(myLit
System.Xml.XPath.XPathException - Expression must evaluate to a node-set.
这是我的密码
XPathDocument doc = new XPathDocument(new StringReader(myLiteralXML));
XPathNavigator nav = doc.CreateNavigator();
string myXPath = "sum(/root/level1/level2/elementsToAdd)";
XPathNavigator sumNode = nav.SelectSingleNode(myXPath);
我希望sumNode.Value
给出我的总和(作为字符串)。但是,当我尝试填充sumNode
时,我得到了上面列出的异常
我知道我的XPath是有效的(或者至少XMLSpy说是有效的)。我可以不使用XPath函数吗
在XPathNavigator上?我只是做错了吗
(还有,我只是好奇,我是不是在浪费时间在一个没有人使用的死胡同上,冒着一年后无法弄清楚这是怎么回事的风险?试试这个:
XPathNavigator sumNode = nav.Evaluate(myXPath);
该方法定义为:
计算指定的XPath表达式并返回类型化结果
与XPathNavigator不同。选择SingleNode方法,该方法仅用于返回节点。请尝试以下操作:
XPathNavigator sumNode = nav.Evaluate(myXPath);
该方法定义为:
计算指定的XPath表达式并返回类型化结果
与XPathNavigator相反。选择SingleNode方法,该方法设计为仅返回节点。从不知道存在该方法。谢谢,我不知道那里有。谢谢