Składnia XPath
- Poprzednia strona Węzły XPath
- Następna strona Oś XPath
XPath używa wyrażeń ścieżkowych do wybierania węzłów lub zbiorów węzłów w dokumencie XML. Węzły są wybierane poprzez ścieżki (path) lub kroki (steps).
Przykład dokumentu XML
Użyjemy tego dokumentu XML w poniższych przykładach.
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
Wybierz węzeł
XPath używa wyrażeń ścieżkowych do wybierania węzłów w dokumencie XML. Węzły są wybierane poprzez ścieżki lub kroki.
Poniżej wymieniliśmy najbardziej użyteczne wyrażenia ścieżkowe:
Wyrażenie | Opis |
---|---|
nodename | Wybierz wszystkie podwęzły tego węzła. |
/ | Wybierz z węzła korzenia. |
// | Wybierz węzły z bieżącego węzła, niezależnie od ich położenia w dokumencie. |
. | Wybierz bieżący węzeł. |
.. | Wybierz rodzica bieżącego węzła. |
@ | Wybierz atrybut. |
Przykład
Poniżej w tabeli wymieniliśmy niektóre wyrażenia ścieżkowe oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
bookstore | Wybierz wszystkie podwęzły elementu bookstore. |
/bookstore |
Wybierz korzeń element bookstore. Uwaga: Jeśli ścieżka zaczyna się od jednego ukośnika (/), zawsze reprezentuje ona absolutną ścieżkę do danego elementu! |
bookstore/book | Wybierz wszystkie elementy book, które są potomkami elementu bookstore. |
//book | Wybierz wszystkie potomki elementu book, niezależnie od ich położenia w dokumencie. |
bookstore//book | Wybierz wszystkie elementy book, które są potomkami elementu bookstore, niezależnie od ich położenia poniżej bookstore. |
//@lang | Wybierz wszystkie atrybuty o nazwie lang. |
Predykaty (Predykaty)
Predykaty służą do wyszukiwania określonych węzłów lub węzłów zawierających określone wartości.
Predykaty są umieszczone w nawiasach kwadratowych.
Przykład
Poniżej w tabeli przedstawiamy wyrażenia ścieżki z predykatami oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
/bookstore/book[1] | Wybierz pierwszy element book, który jest potomkiem elementu bookstore. |
/bookstore/book[last()] | Wybierz ostatni element book, który jest potomkiem elementu bookstore. |
/bookstore/book[last()-1] | Wybierz drugi ostatni element book, który jest potomkiem elementu bookstore. |
/bookstore/book[position()<3] | Wybierz dwa pierwsze elementy book, które są potomkami elementu bookstore. |
//title[@lang] | Wybierz wszystkie elementy title, które mają atrybut lang. |
//title[@lang='eng'] | Wybierz wszystkie elementy title, które mają atrybut lang o wartości eng. |
/bookstore/book[price>35.00] | Wybierz wszystkie elementy book w elementach bookstore, gdzie wartość elementu price jest większa niż 35.00. |
/bookstore/book[price>35.00]/title | Wybierz wszystkie elementy title elementu book w elementach bookstore, gdzie wartość elementu price jest większa niż 35.00. |
Wybierz nieznane węzły
Znak zastępczy XPath można użyć do wyboru nieznanych elementów XML.
Znak zastępczy | Opis |
---|---|
* | Dopasuj dowolny węzeł elementowy. |
@* | Dopasuj dowolny węzeł atrybutowy. |
node() | Dopasuj dowolny typ węzła. |
Przykład
Poniżej w tabeli przedstawiamy niektóre wyrażenia ścieżki oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
/bookstore/* | Wybierz wszystkie potomne elementy elementu bookstore. |
//* | Wybierz wszystkie elementy dokumentu. |
//title[@*] | Wybierz wszystkie elementy title z atrybutami. |
Wybierz kilka ścieżek
Przy użyciu operatora "|" w wyrażeniach ścieżki możesz wybrać kilka ścieżek.
Przykład
Poniżej w tabeli przedstawiamy niektóre wyrażenia ścieżki oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
//book/title | //book/price | Wybierz wszystkie elementy title i price elementu book. |
//title | //price | Wybierz wszystkie elementy title i price w dokumencie. |
/bookstore/book/title | //price | Wybierz wszystkie elementy title należące do elementu bookstore oraz wszystkie elementy price w dokumencie. |
- Poprzednia strona Węzły XPath
- Następna strona Oś XPath