.net - XPathNavigator.Select ("self::node()/../..[@numberOfLocationsAdded!=' 0']")

标签 .net xpath xpathnavigator

当我调用 XPathNavigator.Select ("self::node()/../..[@numberOfLocationsAdded!='0']") 我得到一个异常“有一个无效的 token ”

这是因为 XPathNavigator 不能超过它所在的根目录吗?如果是这样,关于如何最好地处理这种情况的任何建议?

当用户设置他们想要迭代的节点时,我们调用 select 并获取 XPathNodeIterator。
然后对于每次迭代,我们调用 XPathNodeIterator.Current,它为我们所在的节点提供了一个 XPathNavigator。

然后针对我们所在的节点进行 XPath 选择,调用 XPathNavigator.Select()

有没有办法有效地做到这一点?或者,如果我们需要支持 ../.. 我们是否需要始终处理根节点并预先添加他们想要迭代的节点的 XPath?

谢谢 - 戴夫

最佳答案

这在 XPath 1.0 中在语法上无效:

..[condition]

使用 :
self::node()/../../self::*[@numberOfLocationsAdded!='0']

或等价或更短的:
../parent::*[@numberOfLocationsAdded!='0']

关于.net - XPathNavigator.Select ("self::node()/../..[@numberOfLocationsAdded!=' 0']"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10037720/

相关文章:

java - 避免在 Java 中使用 XPath 重复实例化 InputSource

xml - 如何得到2个属性相减的结果

c# - 我如何遍历 XPathNodeIterator 并随机化它的 child ?

regex - 使用正则表达式的 selenium xpath 表达式中的语法错误

c# - XPathNavigator 是否需要 MoveToParent()/MoveToFirstChild() 对?

c# - 由于单引号,XpathNavigator 给出 System.Xml.XPath.XPathException

c# - 查找使用参数类型的方法,其中参数是通用的

c# - 为什么 Properties.Settings.Default 没有被保存?

c# - 从客户端应用程序自动安全地登录 Web

android - Web/Android/iOS - 内部链接 - 寻找想法/解决方案。