xpath
Znajdź węzły, które mają określony atrybut
Szukaj…
Składnia
- Wewnątrz określonego węzła
- / ścieżka do / elementu [@nazwa_atrybutu]
- Gdziekolwiek w dokumencie
- // * [@ nazwa_atrybutu]
- Wewnątrz określonego węzła z pewną wartością
- / path to / element [@ nazwa_atrybutu = 'wartość wyszukiwania']
- / path to / element [@ nazwa_atrybutu = "wartość wyszukiwania"]
- Gdziekolwiek w dokumencie o pewnej wartości
- // * [@ nazwa_atrybutu = „ciąg wyszukiwania”]
- // * [@ nazwa_atrybutu = „ciąg wyszukiwania”]
Parametry
Selektor | funkcjonować |
---|---|
@nazwa_atrybutu | Wybiera wartość atrybutu dla węzła, jeśli jest obecny |
Uwagi
Za pomocą [@nazwa_atrybutu] możemy wybrać węzły, które mają atrybut niezależnie od wartości.
Możemy użyć dowolnej funkcji lub kombinacji funkcji, takich jak na przykład start-with i małe litery, na przykład za pomocą tego selektora do naszych potrzeb.
Znajdź węzły o określonym atrybucie
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
lub
//*[@name]
WYNIK
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
Znajdź węzły o określonej wartości atrybutu
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
lub
//*[@name='Sun']
WYNIK
<CelestialObject name="Sun" type="star" />
Znajdź węzły, podciągając dopasowanie wartości atrybutu
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
lub
//*[contains(@name,'Ear')]
Podwójne cudzysłowy mogą być również stosowane zamiast pojedynczych cudzysłowów:
/Galaxy/*[contains(@name, "Ear")]
WYNIK
<CelestialObject name="Earth" type="planet" />
Znajdź węzły poprzez dopasowanie podciągu wartości atrybutu (bez rozróżniania wielkości liter)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
lub
//*[contains(lower-case(@name),'ear')]
lub z ciągiem w podwójnych cudzysłowach:
//*[contains(lower-case(@name), "ear")]
WYNIK
<CelestialObject name="Earth" type="planet" />
Znajdź węzły, podciągając pasujące do początku wartości atrybutu
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')]
lub
//*[starts-with(lower-case(@name),'ear')]
WYNIK
<CelestialObject name="Earth" type="planet" />
Znajdź węzły, podciągając pasujące do końca wartości atrybutu
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')]
lub
//*[ends-with(lower-case(@type),'tar')]
WYNIK
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow