Xpath.doc

(34 KB) Pobierz
Przykłady wyrażeń Xpath

Przykłady wyrażeń Xpath

 

Zasadniczo składnia XPath jest podobna do adresowania plików w systemie plików. Jeśli ścieżka zaczyna się od / to reprezentuje absolutną ścieżkę do wymaganego elementu.

 

/BOOKLIST/BOOK wyznacza wszystkie elementy BOOK, które są następnikami głównego elementu BOOKLIST.

 

Jeśli ścieżka zaczyna się od // wówczas wszystkie elementy w drzewie spełniające dalsze warunki są wyznaczane np.


//AUTHOR/LASTNAME - wyznacza wszystkie elementy LASTNAME, które są następnikami dowolnego elementu AUTHOR osiągalnego z głównego elementu.

//AUTHOR/LASTNAME[1] - wyznacza pierwszy element w zbiorze wyników.

//AUTHOR/LASTNAME[last()] - wyznacza ostatni element w zbiorze wyników.

//AUTHOR/* - wybiera wszystkie elementy zlokalizowane przez poprzedzającą ścieżkę.

 

Atrybuty są specyfikowane za pomocą prefiksu @ np.
//@id - wyznacz wszystkie elementy z atrybutem id.

 

W nawiasach [ ] są formułowane predykaty. Można używać wartości atrybutów jako kryterium wyboru elementu. Np.
//BOOK[@Category=’fiction’] - wyznacz wszystkie elementy BOOK, które mają atrybut Category równy ’fiction’.

 

Można używać spójników logicznych jak OR, AND i NOT np.
/BOOKLIST/BOOK[PUBLISHED=2001 OR PUBLISHED=2002]/AUTHOR/LASTNAME

wyznacza wszystkie elementy LASTNAME autorów książek opublikowanych albo w 2001 albo w 2002.

 

Funkcja count() zlicza liczbę wybranych elementów np.
//*[count(BOOK)>=2] - wyznacza elementy, które mają co najmniej dwa następniki BOOK.

W szczególności count(*) - zlicza wszystkie następniki danego węzła.

 

Funkcja name() podaje nazwę wybranego elementu np.
//*[name()='BOOK'] - wybiera wszystkie elementy BOOK - wyrażenie równoważne z //BOOK.

//*[starts-with(name(),'B')] - wybiera wszystkie elementy, których nazwa zaczyna się na literę 'B'

//*[contains(name(),'B')] - wybiera wszystkie elementy, których nazwa zawiera literę 'B'.

//*[string-length(name()) <= 3] - wybiera wszystkie elementy, których nazwa ma długość mniejszą lub równą 3.

 

Operatorem sumowania ścieżek jest | np.
//BOOK | //CD| //DVD

 

Zgłoś jeśli naruszono regulamin