xpath
Zoek knooppunten met een specifiek kenmerk
Zoeken…
Syntaxis
- Binnen een specifiek knooppunt
- / pad naar / element [@attribute_name]
- Overal in het document
- //*[@attribuut naam]
- Binnen een specifiek knooppunt met enige waarde
- / pad naar / element [@ attribute_name = 'zoekwaarde']
- / pad naar / element [@ attribute_name = "zoekwaarde"]
- Overal in het document met enige waarde
- // * [@ attribute_name = 'zoekreeks']
- // * [@ attribute_name = "zoekreeks"]
parameters
keuzeschakelaar | functie |
---|---|
@attribuut naam | Hiermee wordt de kenmerkwaarde voor een knooppunt geselecteerd, indien aanwezig |
Opmerkingen
Met behulp van [@attribuutnaam] kunnen we knooppunten selecteren die het kenmerk hebben, ongeacht de waarde.
We kunnen elk van de functies of een combinatie van functies gebruiken, zoals start-met en kleine letters, bijvoorbeeld met deze selector om aan onze behoeften te voldoen.
Zoek knooppunten met een specifiek kenmerk
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
of
//*[@name]
OUTPUT
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
Zoek knooppunten met een specifieke kenmerkwaarde
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
of
//*[@name='Sun']
OUTPUT
<CelestialObject name="Sun" type="star" />
Zoek knooppunten door substring matching van de waarde van een attribuut
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
of
//*[contains(@name,'Ear')]
Dubbele aanhalingstekens kunnen ook worden gebruikt in plaats van enkele aanhalingstekens:
/Galaxy/*[contains(@name, "Ear")]
OUTPUT
<CelestialObject name="Earth" type="planet" />
Zoek knooppunten door substring matching van de waarde van een attribuut (niet hoofdlettergevoelig)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
of
//*[contains(lower-case(@name),'ear')]
of, met de string in dubbele aanhalingstekens:
//*[contains(lower-case(@name), "ear")]
OUTPUT
<CelestialObject name="Earth" type="planet" />
Zoek knooppunten door een substring te selecteren die overeenkomt met het begin van de waarde van een kenmerk
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')]
of
//*[starts-with(lower-case(@name),'ear')]
OUTPUT
<CelestialObject name="Earth" type="planet" />
Zoek knooppunten door substring te gebruiken die overeenkomt met het einde van de waarde van een attribuut
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')]
of
//*[ends-with(lower-case(@type),'tar')]
OUTPUT
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow