7

要素の祖先の属性が文字列と等しくないかどうかをテストしようとしています。

これが私のXMLです...

<aaa att="xyz">
<bbb>
<ccc/>
</bbb>
</aaa>
<aaa att="mno">
<bbb>
<ccc/>
</bbb>
</aaa>

要素 ccc を操作している場合、その祖父母の aaa @att が "xyz" と等しくないことをテストしようとしています。

私は現在これを持っています...

ancestor::aaa[not(contains(@att, 'xyz'))]

ありがとう!

4

1 に答える 1

16

要素の祖先を言うことによって、子要素を持つ要素を参照していると仮定すると、このXPath式は次のことを行う必要があります。

//*[*/ccc][@att != 'xyz']

選択します

  1. すべてのノード
  2. 少なくとも1<ccc>つの孫ノードがあります
  3. 値がでattはない属性がありますxyz

更新:の祖父母に制限されたテスト<ccc>

更新2:改訂された質問に適合:

//ccc[../parent::aaa/@att != 'xyz']

選択

  1. すべての<ccc>要素
  2. <aaa>属性attがではない値に設定された祖父母を持っているxyz
于 2012-06-21T19:02:45.593 に答える