2

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

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

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

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

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

谢谢 - 戴夫

4

1 回答 1

1

这在 XPath 1.0 中在语法上是无效的

..[condition]

使用

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

或等价或更短的:

../parent::*[@numberOfLocationsAdded!='0']
于 2012-04-06T03:54:27.263 回答