Gramatyka XPath
- Poprzednia strona Węzły XPath
- Następna strona Oś XPath
XPath używa wyrażenia ścieżki do wybierania węzłów lub zbioru węzłów w dokumencie XML. Węzły są wybierane poprzez ścieżkę (path) lub kroki (steps).
Przykładowy dokument 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>
Wybieranie węzłów
XPath używa wyrażenia ścieżki do wybierania węzłów w dokumencie XML. Węzły są wybierane poprzez ścieżkę lub krok.
Poniżej znajdują się najbardziej użyteczne wyrażenia ścieżkowe:
Wyrażenie | Opis |
---|---|
nodename | Wybierz wszystkie potomki tego węzła. |
/ | Wybierz węzły od korzenia. |
// | Wybierz węzły z bieżącego węzła, niezależnie od ich pozycji w dokumencie. |
. | Wybierz bieżący węzeł. |
.. | Wybierz rodzica bieżącego węzła. |
@ | Wybierz atrybut. |
Przykład
Poniżej w tabeli przedstawiamy niektóre wyrażenia ścieżkowe oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
bookstore | Wybierz wszystkie potomki elementu bookstore. |
/bookstore |
Wybierz element korzeni bookstore. Uwaga: Jeśli ścieżka zaczyna się od znaku slash (/), zawsze reprezentuje ona absolutną ścieżkę do elementu! |
bookstore/book | Wybierz wszystkie elementy book będące dziećmi elementu bookstore. |
//book | Wybierz wszystkie potomki book, niezależnie od ich pozycji w dokumencie. |
bookstore//book | Wybierz wszystkie elementy book będące potomkami elementu bookstore, niezależnie od ich pozycji. |
//@lang | Wybierz wszystkie atrybuty o nazwie lang. |
Predykaty (Predykaty)
Predykaty służą do wyszukiwania konkretnych 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 niektóre wyrażenia ścieżkowe z predykatami oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
/bookstore/book[1] | Wybierz pierwszy element book będący dzieckiem elementu bookstore. |
/bookstore/book[last()] | Wybierz ostatni element book będący dzieckiem elementu bookstore. |
/bookstore/book[last()-1] | Wybierz drugi ostatni element book będący dzieckiem elementu bookstore. |
/bookstore/book[position()<3] | Wybierz pierwsze dwa elementy book będące dziećmi 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 wewnątrz elementu bookstore, gdzie wartość elementu price musi być większa niż 35.00. |
/bookstore/book[price>35.00]/title | Wybierz wszystkie elementy title elementu book w elementie bookstore, gdzie wartość elementu price musi być większa niż 35.00. |
Wybór nieznanych węzłów
Znak zastępczy XPath można użyć do wybrania 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 wymieniliśmy niektóre wyrażenia ścieżki oraz ich wyniki:
Wyrażenie ścieżki | Wynik |
---|---|
/bookstore/* | Wybierz wszystkie podelementy elementu bookstore. |
//* | Wybierz wszystkie elementy w dokumencie. |
//title[@*] | Wybierz wszystkie elementy title z atrybutami. |
Wybór kilku ścieżek
Poprzez użycie operatora "|" w wyrażeniach ścieżki można wybrać kilka ścieżek.
Przykład
Poniżej w tabeli wymieniliśmy 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