Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我可以将XPath函数与XPathNavigator一起使用吗?_.net_Xml_Xpath - Fatal编程技术网

.net 我可以将XPath函数与XPathNavigator一起使用吗?

.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

我在文档的根目录下有一个XPathNavigator。向下几层,有一组数值,我想求和。我总是可以循环遍历节点并自己添加它们,但是因为我知道XPath规范包含一个求和函数,所以我决定尝试使用它。我遇到了一个错误

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方法,该方法设计为仅返回节点。

从不知道存在该方法。谢谢,我不知道那里有。谢谢