xpath
名前がいくつかの文字列を含む、または含む名前のノードを選択する
サーチ…
構文
特定のノードの内部:
{パスへのパス} / name()= '検索文字列']
ドキュメント内のどこにでも:
// * [name()= '検索文字列']
パラメーター
関数 | 戻り値 |
---|---|
ローカル名() | 接頭辞なしのノードの名前 |
備考
local-name()結果にはプレフィックス(lookup name()XPATH関数)が含まれていません。
名前がLight、Device、またはSensorのノードを検索する
XML
<Galaxy>
<Light>sun</Light>
<Device>satellite</Device>
<Sensor>human</Sensor>
<Name>Milky Way</Name>
</Galaxy>
XPATH
/Galaxy/*[local-name()='Light' or local-name()='Device' or local-name()='Sensor']
または
//*[local-name()='Light' or local-name()='Device' or local-name()='Sensor']
出力
<Light>sun</Light>
<Device>satellite</Device>
<Sensor>human</Sensor>
Lightを含む名前のノードを検索する
XML
<Data>
<BioLight>
<name>Firefly</name>
<model>Insect</model>
</BioLight>
<ArtificialLight>
<name>Fire</name>
<model>Natural element</model>
<source>flint</source>
</ArtificialLight>
<SolarLight>
<name>Sun</name>
<model>Star</model>
<source>helium</source>
</SolarLight>
</Data>
XPATH
/Data/*[contains(local-name(),"Light")]
または
//*[contains(local-name(),"Light")]
出力
<BioLight>
<name>Firefly</name>
<model>Insect</model>
</BioLight>
<ArtificialLight>
<name>Fire</name>
<model>Natural element</model>
<source>flint</source>
</ArtificialLight>
<SolarLight>
<name>Sun</name>
<model>Star</model>
<source>helium</source>
</SolarLight>
スターで始まる名前のノードを検索する
XML
<College>
<FootBall>
<Members>20</Members>
<Coach>Archie Theron</Coach>
<Name>Wild cats</Name>
<StarFootballer>David Perry</StarFootballer>
</FootBall>
<Academics>
<Members>100</Members>
<Teacher>Tim Jose</Teacher>
<Class>VII</Class>
<StarPerformer>Lindsay Rowen</StarPerformer>
</Academics>
</College>
XPATH
/College/*/*[starts-with(local-name(),"Star")]
または
//*[starts-with(local-name(),"Star")]
出力
<StarFootballer>David Perry</StarFootballer>
<StarPerformer>Lindsay Rowen</StarPerformer>
ボールで終わる名前のノードを検索する
XML
<College>
<FootBall>
<Members>20</Members>
<Coach>Archie Theron</Coach>
<Name>Wild cats</Name>
<StarPlayer>David Perry</StarPlayer>
</FootBall>
<VolleyBall>
<Members>24</Members>
<Coach>Tim Jose</Coach>
<Name>Avengers</Name>
<StarPlayer>Lindsay Rowen</StarPlayer>
</VolleyBall>
<FoosBall>
<Members>22</Members>
<Coach>Rahul Mehra</Coach>
<Name>Playerz</Name>
<StarPlayer>Amanda Ren</StarPlayer>
</FoosBall>
</College>
XPATH
/College/*[ends-with(local-name(),"Ball")]
または
//*[ends-with(local-name(),"Ball")]
出力
<FootBall>
<Members>20</Members>
<Coach>Archie Theron</Coach>
<Name>Wild cats</Name>
<StarPlayer>David Perry</StarPlayer>
</FootBall>
<VolleyBall>
<Members>24</Members>
<Coach>Tim Jose</Coach>
<Name>Avengers</Name>
<StarPlayer>Lindsay Rowen</StarPlayer>
</VolleyBall>
<FoosBall>
<Members>22</Members>
<Coach>Rahul Mehra</Coach>
<Name>Playerz</Name>
<StarPlayer>Amanda Ren</StarPlayer>
</FoosBall>
名前のついたノードを検索する(大文字と小文字を区別しない)
XML
<Galaxy>
<Light>sun</Light>
<Device>satellite</Device>
<Sensor>human</Sensor>
<Name>Milky Way</Name>
</Galaxy>
XPATH
/Galaxy/*[lower-case(local-name())="light"]
または
//*[lower-case(local-name())="light"]
出力
<Light>sun</Light>
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow