XPath Akser (Aks)
- Forrige side XPath Syntaks
- Næste side XPath Operatorer
XML-instansdokument
Vi vil bruge dette XML-dokument i nedenstående eksempel:
<?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>
XPath-aksel
En aksel kan defineres som en nodemængde i forhold til den aktuelle node.
Aksenavn | Resultat |
---|---|
ancestor | Vælg alle forfædre (far, oldefar osv.). |
ancestor-or-self | Vælg alle forfædre (far, oldefar osv.) og den aktuelle node selv. |
attribute | Vælg alle egenskaber til den aktuelle node. |
child | Vælg alle underelementer til den aktuelle node. |
descendant | Vælg alle efterkommerelementer (søn, oldebarn osv.). |
descendant-or-self | Vælg alle efterkommerelementer (søn, oldebarn osv.) og den aktuelle node selv. |
following | Vælg alle noder efter den aktuelle nodes slutetiket i dokumentet. |
namespace | Vælg alle namespace-noder for den aktuelle node. |
parent | Vælg den aktuelle nodes forældernode. |
preceding | Vælg alle noder før den aktuelle nodes startetiket i dokumentet. |
preceding-sibling | Vælg alle samtidige noder før den aktuelle node. |
self | Vælg den aktuelle node. |
Stiplaceringsekspression
Stiplacering kan være enten absolut eller relativ.
Den absolute sti starter med en ret vinkelstreg ( / ), mens den relative sti ikke gør det. I begge tilfælde inkluderer stiplaceringen en eller flere trin, der hver især er adskilt af en skråstreg:
Absolut positionspat
/step/step/...
Relativ positionspat
step/step/...
Hvert trin beregnes baseret på noderne i den aktuelle nodestream.
Trin (step) inkluderer:
- Aks (axis)
- Definer trærelationen mellem den valgte node og den aktuelle node
- Nodetest (node-test)
- Identificer noder inden for en aks
- Ingen eller flere udsagn (predicate)
- Dypere filtrering af den valgte nodestream
Syntaks for trin:
Aksnavn::nodetest[udsagn]
Eksempel
Eksempel | Resultat |
---|---|
child::book | Vælg alle book-noder, der tilhører de underelementer, der tilhører den aktuelle node. |
attribute::lang | Vælg den aktuelle nodes lang-egenskab. |
child::* | Vælg alle underelementer til den aktuelle node. |
attribute::* | Vælg alle egenskaber til den aktuelle node. |
child::text() | Vælg alle tekst-undernoder til den aktuelle node. |
child::node() | Vælg alle undernoder til den aktuelle node. |
descendant::book | Vælg alle book-afkom til den aktuelle node. |
ancestor::book | Vælg alle book-ancestorer til den aktuelle node. |
ancestor-or-self::book | Vælg alle book-ancestorer og den aktuelle node (hvis denne node er en book-node) |
child::*/child::price | Vælg alle price-barnnoder til den aktuelle node. |
- Forrige side XPath Syntaks
- Næste side XPath Operatorer