Najnowsze tutoriale tworzenie stron internetowych
 

Składnia XPath


XPath używa wyrażeń ścieżki, aby wybrać węzły lub węzeł zestawów w dokumencie XML. Węzeł jest wybrany podąża ścieżką lub etapów.


Przykład dokumentu XML

Będziemy używać poniższego dokumentu XML w poniższych przykładach.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

Wybór węzłów

XPath używa wyrażeń ścieżki do wyboru węzłów w dokumencie XML. Węzeł jest wybrany podąża ścieżką lub etapów. Do najbardziej użytecznych wyrażeń ścieżki są wymienione poniżej:

Wyrażenie Opis
nodename Wybiera wszystkie węzły z nazwą „ nodename
/ Wybiera od węzła głównego
// Wybiera węzły w dokumencie z bieżącego węzła, który zgadza się na wybór bez względu na to gdzie się znajdują
. Wybiera bieżący węzeł
.. Zaznacza rodzica bieżącego węzła
@ Wybór atrybutów

W poniższej tabeli mamy wymienione niektóre wyrażenia ścieżka i wynik wyrażenia:

ścieżka Expression Wynik
Księgarnia Wybiera wszystkie węzły z nazwą "bookstore"
/Księgarnia Wybiera element główny księgarni

Note: Jeśli ścieżka zaczyna się od ukośnika ( / ) to zawsze oznacza bezwzględną ścieżkę do elementu!

księgarnia / książki Zaznacza wszystkie elementy książce, że jesteśmy dziećmi księgarni
//książka Zaznacza wszystkie elementy książki bez względu na to gdzie są one w dokumencie
// książka księgarnia Zaznacza wszystkie elementy książki, które są potomkiem elementu księgarni, bez względu na to gdzie są one pod elementem księgarni
// @ lang Wybiera wszystkie atrybuty, które są nazwane lang

predykaty

Predykaty są wykorzystywane w celu znalezienia określonego węzła lub węzeł, który zawiera konkretną wartość.

Predykaty są zawsze osadzone w nawiasach kwadratowych.

W poniższej tabeli mamy wymienione niektóre wyrażenia ścieżki z orzeczników i wynik wyrażenia:

ścieżka Expression Wynik
/ Księgarnia / książki [1] Wybiera pierwszy element książki, że jest dzieckiem elementu księgarni.

Note: W IE 5,6,7,8,9 pierwszy węzeł [0], lecz zgodnie z W3C, to [1]. Aby rozwiązać ten problem w IE, ustaw SelectionLanguage do XPath:

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ;
/ Księgarnia / książka [ last() ] Wybiera ostatni element książki, że jest dzieckiem elementu księgarni
/ księgarnia / książka [ last() -1] Wybiera przedostatniej książki element, który jest dzieckiem elementu księgarni
/ księgarnia / książka [ position() <3] Wybiera pierwsze dwa elementy książce, że są dziećmi elementu księgarni
// nazwa [@lang] Zaznacza wszystkie elementy tytułowe, które mają atrybut o nazwie lang
// nazwa [@ język = 'PL'] Zaznacza wszystkie elementy, które mają tytuł „lang” atrybutu o wartości "en"
/bookstore/book[price>35.00] Zaznacza wszystkie elementy ewidencyjna elementu księgarni, które mają element cenę o wartości większej niż 35,00
/bookstore/book[price>35.00]/title Zaznacza wszystkie elementy tytuł elementów książki elementu księgarni, które mają element cenę o wartości większej niż 35,00

Wybór nieznana węzłów

dzikie karty XPath mogą być używane do wyboru nieznanych węzłów XML.

Dzika karta Opis
* Dopasowuje dowolny węzeł elementu
@* Dopasowuje dowolny węzeł atrybutu
node() Dopasowuje dowolny węzeł wszelkiego rodzaju

W poniższej tabeli mamy wymienione niektóre wyrażenia ścieżka i wynik wyrażenia:

ścieżka Expression Wynik
/Księgarnia/* Wybiera wszystkie węzły element podrzędny elementu księgarni
// * Zaznacza wszystkie elementy w dokumencie
//tytuł[@*] Zaznacza wszystkie elementy tytułowe, które mają co najmniej jeden atrybut każdego rodzaju

Wybierając różne ścieżki

Przy użyciu | Operator w wyrażeniu XPath można wybrać kilka ścieżek.

W poniższej tabeli mamy wymienione niektóre wyrażenia ścieżka i wynik wyrażenia:

ścieżka Expression Wynik
// książka / title | // książka / cena Wybiera wszystkie tytuł i cen elementy wszystkich elementów książki
// tytuł | //cena Wybiera wszystkie tytuł i cen elementy w dokumencie
/ Księgarnia / książka / title | //cena Zaznacza wszystkie elementy tytuł elementu książki elementu księgarnia i wszystkie elementy cen w dokumencie