サーチ…


構文

  1. 特定のノードの内部
    • / path to / element [@attribute_name]
  2. ドキュメント内のどこにでも
    • //*[@属性名]
  3. いくつかの値を持つ特定のノードの内部
    • / path to / element [@ attribute_name = '検索値']
    • / pathへのパス/要素[@ attribute_name = "検索値"]
  4. 何らかの価値を持つドキュメント内のどこでも
    • // * [@ 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