1. ホーム
  2. xml

[解決済み] foo "を含む属性を選択するための正しいXPathは何ですか?

2022-04-22 22:28:08

質問

このXMLが与えられたとき、どのようなXPathを使えば prop 属性に Foo (最初の3つのノード)。

<bla>
 <a prop="Foo1"/>
 <a prop="Foo2"/>
 <a prop="3Foo"/>
 <a prop="Bar"/>
</bla>

解決方法は?

//a[contains(@prop,'Foo')]

このXMLを使用して結果を取得すると、動作します。

<bla>
 <a prop="Foo1">a</a>
 <a prop="Foo2">b</a>
 <a prop="3Foo">c</a>
 <a prop="Bar">a</a>
</bla>

編集する もう一つ注意すべき点は、上記のXPathはその特定のxmlに対して正しい答えを返しますが、要素 "bla"の中の"a"要素のみを取得することを保証したい場合、他の人が言ったように、次のように使用すべきなのです。

/bla/a[contains(@prop,'Foo')]

これは、"blah"要素にネストされているかどうかにかかわらず、xml文書全体のすべての"a"要素を検索します。

//a[contains(@prop,'Foo')]  

徹底させるため、そしてstackoverflowの精神に則って追加しました :)