XPath Axes (akser)
- Forrige side XPath syntaks
- Næste side XPath operatorer
XML eksempel dokument
Vi vil bruge dette XML-dokument i nedenstående eksempel:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore><title lang="eng">Harry Potter</title> <price>29.99</price> </book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
XPath-aks
Aksen kan definere en nodestabel i forhold til den aktuelle knude | Resultat |
---|---|
Aks navn | ancestor |
Vælg alle anerkommere (forældre, oldeforældre osv.) til den aktuelle knude | ancestor-or-self |
Vælg alle anerkommere (forældre, oldeforældre osv.) til den aktuelle knude samt den aktuelle knude selv | Vælg alle egenskaber til den aktuelle knude. |
attribute | Vælg alle underelementer til den aktuelle knude. |
child | descendant |
Vælg alle efterkommerelementer (søn, oldebarn osv.) til den aktuelle knude | descendant-or-self |
Vælg alle efterkommerelementer (søn, oldebarn osv.) til den aktuelle knude samt den aktuelle knude selv | following |
Vælg alle noder efter den aktuelle knudes sluttag i dokumentet | namespace |
Vælg alle navnespaces til den aktuelle knude | parent |
Vælg den aktuelle knudes forælderknude | preceding |
Vælg alle noder før den aktuelle knudes starttag i dokumentet | preceding-sibling |
Vælg alle同级knuder før den aktuelle knude | self |
Vælg den aktuelle knude
Positionspatchudtryk
Positionspatch kan være absolut eller relativ
Absolut positionspatch: Absolut path starter med en ret linjeskille ( / ), mens relativ path ikke gør det. I begge tilfælde inkluderer positionspatch en eller flere trin, der hver især adskilles af en skråstreg:
/step/step/...
Relativ positionspatch:
step/step/...
Hvert trin beregnes baseret på noderne i den aktuelle nodestabel
Trin (step) inkluderer:
- Aks (axis)
- Definer den træforhold mellem den valgte nodestabel og den aktuelle knude
- Node-test (node-test)
- Genkende noder inden for en aks
- Ingen eller flere udsagn (predicate)
- Udforsk mere præcist den valgte nodestabel
Syntaks for trin:
Aks navn::node-test[udsagn]
Eksempel
Eksempel | Resultat |
---|---|
child::book | Vælg alle book-knuder, der tilhører underknuderne til den aktuelle knude. |
attribute::lang | Vælg lang-egenskaben til den aktuelle knude. |
child::* | Vælg alle underelementer til den aktuelle knude. |
attribute::* | Vælg alle egenskaber til den aktuelle knude. |
child::text() | Vælg alle tekstunderknuder til den aktuelle knude. |
child::node() | Vælg alle underknuder til den aktuelle knude. |
descendant::book | Vælg alle book efterkommere til den aktuelle node. |
ancestor::book | Vælg alle book forfædre til den aktuelle node. |
ancestor-or-self::book | Vælg alle book forfædre samt den aktuelle node (hvis denne node er en book node) |
child::*/child::price | Vælg alle price efterkommere til den aktuelle node. |
- Forrige side XPath syntaks
- Næste side XPath operatorer