2

XPathNavigator.Select ("self::node()/../..[@numberOfLocationsAdded!='0']") を呼び出すと、「無効なトークンがあります」という例外が発生します

これは、XPathNavigator が存在するルートを超えることができないためですか? もしそうなら、このケースを処理する最善の方法についての提案はありますか?

ユーザーが反復したいノードを設定すると、select を呼び出して XPathNodeIterator を取得します。
次に、反復ごとに XPathNodeIterator.Current を呼び出します。これにより、現在のノードの XPathNavigator が提供されます。

次に、現在のノードに対する XPath 選択のために、XPathNavigator.Select() を呼び出します。

これを効率的に行う方法はありますか?または、../.. をサポートする必要がある場合、常にルート ノードから作業を行い、反復処理するノードの XPath を先頭に追加する必要がありますか?

ありがとう - デイブ

4

1 に答える 1

1

これは、XPath1.0では構文的に無効です

..[condition]

使用

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

または同等以下:

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