xpath
特定の属性を持つノードを見つける
サーチ…
構文
- 特定のノードの内部
- / path to / element [@attribute_name]
- ドキュメント内のどこにでも
- //*[@属性名]
- いくつかの値を持つ特定のノードの内部
- / path to / element [@ attribute_name = '検索値']
- / pathへのパス/要素[@ attribute_name = "検索値"]
- 何らかの価値を持つドキュメント内のどこでも
- // * [@ attribute_name = '検索文字列']
- // * [@ attribute_name = "検索文字列"]
パラメーター
セレクタ | 関数 |
---|---|
@属性名 | 存在する場合、ノードの属性値を選択します |
備考
[@ attribute_name]を使うと、値に関係なく属性を持つノードを選択できます。
このセレクタは、私たちのニーズに合わせて、start-withとlowercaseなどの関数や関数の組み合わせのいずれかを使用できます。
特定の属性を持つノードを見つける
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
または
//*[@name]
出力
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
特定の属性値を持つノードを見つける
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
または
//*[@name='Sun']
出力
<CelestialObject name="Sun" type="star" />
属性値の部分文字列マッチングによるノードの検索
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
または
//*[contains(@name,'Ear')]
一重引用符の代わりに二重引用符を使用することもできます。
/Galaxy/*[contains(@name, "Ear")]
出力
<CelestialObject name="Earth" type="planet" />
属性値の部分文字列マッチングによるノードの検索(大文字小文字を区別しない)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
または
//*[contains(lower-case(@name),'ear')]
または、二重引用符で囲んだ文字列を使用します。
//*[contains(lower-case(@name), "ear")]
出力
<CelestialObject name="Earth" type="planet" />
属性の値の先頭に一致する部分文字列でノードを見つける
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[starts-with(lower-case(@name),'ear')]
または
//*[starts-with(lower-case(@name),'ear')]
出力
<CelestialObject name="Earth" type="planet" />
属性の値の終わりに一致する部分文字列でノードを見つける
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[ends-with(lower-case(@type),'tar')]
または
//*[ends-with(lower-case(@type),'tar')]
出力
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow