当我调用 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/