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>
Osie XPath
Oś definiuje zbiór węzłów w stosunku do bieżącego węzła.
AxisName | Wynik |
---|---|
przodek | Wybiera wszystkie przodków (parent, grandparent, etc.) bieżącego węzła |
przodek-or-self | Wybiera wszystkie przodków (parent, grandparent, etc.) bieżącego węzła i aktualny węzeł sam |
atrybut | Wybiera wszystkie atrybuty bieżącego węzła |
dziecko | Zaznacza wszystkie dzieci bieżącego węzła |
potomek | Wybiera wszystkie potomków (children, grandchildren, etc.) bieżącego węzła |
potomek-or-self | Wybiera wszystkie potomków (children, grandchildren, etc.) bieżącego węzła i obecny sam węzeł |
następujący | Zaznacza wszystko w dokumencie po znaczniku zamykającym bieżącego węzła |
following-rodzeństwo | Wybiera wszystkie rodzeństwo po bieżącego węzła |
namespace | Wybiera wszystkie węzły przestrzeni nazw bieżącego węzła |
roślina mateczna | Zaznacza rodzica bieżącego węzła |
poprzedzający | Wybiera wszystkie węzły, które pojawiają się przed bieżącego węzła w dokumencie, z wyjątkiem przodków, przypisywać węzły i węzły przestrzeni nazw |
poprzednich rodzeństwo | Wybiera wszystkie rodzeństwa przed bieżącego węzła |
samego siebie | Wybiera bieżący węzeł |
Lokalizacja Ścieżka Expression
Ścieżka lokalizacja może być bezwzględne lub względne.
Ścieżka bezwzględna lokalizacja rozpoczyna się ukośnikiem ( / ) a ścieżka względna lokalizacja nie. W obu przypadkach droga położenie składa się z jednego lub większej ilości etapów, oddzielonych ukośnikiem:
An absolute location path:
/step/step/...
A relative location path:
step/step/...
Każdy krok jest oceniany na węzłach w bieżącym zestaw węzłów.
Etap składa się z:
- oś (defines the tree-relationship between the selected nodes and the current node)
- węzeł testu (identifies a node within an axis)
- zero lub więcej orzeczniki (to further refine the selected node-set)
Składnia kroku lokalizacja to:
axisname::nodetest[predicate]
Przykłady
Przykład | Wynik |
---|---|
child :: książka | Wybiera wszystkie węzły książce, że jesteśmy dziećmi bieżącego węzła |
atrybut :: lang | Wybiera lang atrybut bieżącego węzła |
dziecko::* | Zaznacza wszystkie dzieci elementem bieżącego węzła |
atrybut::* | Wybiera wszystkie atrybuty bieżącego węzła |
child :: text() | Zaznacza wszystkie dzieci węzła tekstowego bieżącego węzła |
child :: node() | Zaznacza wszystkie dzieci bieżącego węzła |
potomek :: książka | Wybiera wszystkie potomków ewidencyjna bieżącego węzła |
przodek :: książka | Wybiera wszystkie przodków ewidencyjna bieżącego węzła |
przodek-or-self :: książka | Wybiera wszystkie przodków ewidencyjna bieżącego węzła - i prąd, a także, jeśli jest to węzeł książka |
child :: * / child :: cena | Wybiera wszystkie wnuki cena bieżącego węzła |