Oś XPath (Axes)
- Poprzednia strona Gramatyka XPath
- Następna strona Operatorzy XPath
Dokument przykładowy 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>
Oś XPath
Oś może definiować zbiór węzłów w stosunku do bieżącego węzła.
Nazwa osi | Wynik |
---|---|
ancestor | Wybierz wszystkich przodków (rodzic, pradziad itp.). |
ancestor-or-self | Wybierz wszystkich przodków (rodzic, pradziad itp.) oraz sam węzeł. |
attribute | Wybierz wszystkie atrybuty |
child | Wybierz wszystkich potomków elementów |
descendant | Wybierz wszystkie potomki bieżącego węzła (syn, wnuk itp.). |
descendant-or-self | Wybierz wszystkie potomki bieżącego węzła (syn, wnuk itp.) oraz sam węzeł. |
following | Wybierz wszystkie węzły po etykiecie końcowej bieżącego węzła w dokumencie. |
namespace | Wybierz wszystkie węzły przestrzeni nazw bieżącego węzła. |
parent | Wybierz rodzica bieżącego węzła. |
preceding | Wybierz wszystkie węzły przed etykietą startową bieżącego węzła w dokumencie. |
preceding-sibling | Wybierz wszystkie równe węzły przed bieżącym węzłem. |
self | Wybierz bieżący węzeł. |
Wyrażenie ścieżki pozycyjnej
Ścieżka pozycyjna może być absolutna lub względna.
Absolutna ścieżka zaczyna się od poprawnego ukośnika ( / ), podczas gdy względna ścieżka nie jest taka. W obu przypadkach, ścieżka pozycyjna obejmuje jedną lub kilka kroków, każdy z nich jest rozdzielony ukośnikiem:
Wzór pozycji absolutnej:
/step/step/...
Wzór pozycji relatywnej:
step/step/...
Każdy krok jest obliczany na podstawie węzłów w bieżącym zestawie węzłów.
Krok (step) obejmuje:
- Oś (axis)
- Zdefiniuj relację drzewienną między wybranymi węzłami a bieżącym węzłem
- Test węzła (node-test)
- Rozpoznaj węzły wewnątrz osi
- Zero lub więcej przysłówek (predicate)
- Dalej wyodrębnij wybrany zestaw węzłów
Gramatyka kroku:
Nazwa osi::test węzła[przysłówek]
Przykład
Przykład | Wynik |
---|---|
child::book | Wybierz wszystkie węzły book, które są potomkami bieżącego węzła |
attribute::lang | Wybierz atrybut lang bieżącego węzła |
child::* | Wybierz wszystkich potomków elementów |
attribute::* | Wybierz wszystkie atrybuty |
child::text() | Wybierz wszystkich potomków tekstowych |
child::node() | Wybierz wszystkich potomków |
descendant::book | Wybierz wszystkich potomków book |
ancestor::book | Wybierz wszystkich przodków book |
ancestor-or-self::book | Wybierz wszystkich przodków book oraz bieżący węzeł (jeśli jest to węzeł book) |
child::*/child::price | Wybierz wszystkie potomne węzły price od bieżącego węzła. |
- Poprzednia strona Gramatyka XPath
- Następna strona Operatorzy XPath