当前位置:  开发笔记 > 编程语言 > 正文

我可以在XPathNavigator中使用XPath函数吗?

如何解决《我可以在XPathNavigator中使用XPath函数吗?》经验,为你挑选了1个好方法。

我在文档的根目录下有一个XPathNavigator.几个级别下来,我想要总结一组数值.我总是可以循环遍历节点并自己添加它们,但由于我知道XPath规范包含了sum函数,所以我决定尝试使用它.我遇到了一个错误.

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说它是有效的).我可以不在XPathNavigator上使用XPath函数吗?我只是做错了吗?

(另外,只是好奇,我是在浪费我的时间在一个没有人使用的死胡同上,并冒着从现在开始无法弄清楚这是做什么的风险?)



1> Andrew Hare..:

试试这个:

XPathNavigator sumNode = nav.Evaluate(myXPath);

XPathNavigator.Evaluate方法定义为:

计算指定的XPath表达式并返回键入的结果.

而不是XPathNavigator.SelectSingleNode设计为仅返回节点的方法.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有