XPath syntaks
- Forrige side XPath knudepunkter
- Næste side XPath akser
XPath bruger stipløse udtryk til at vælge noder eller en samling af noder i et XML-dokument. Noder vælges ved at følge en sti (path) eller trin (steps).
XML eksempeldokument
Vi vil bruge dette XML-dokument i de følgende eksempler.
<?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>
Vælg noder
XPath bruger stipløse udtryk til at vælge noder i et XML-dokument. Noder vælges ved at følge en sti eller trin.
Nedenfor er de mest nyttige stiplæsninger:
Utrykket | Beskrivelse |
---|---|
nodename | Vælg alle underordnede noder til dette element. |
/ | Vælg fra rodnoden. |
// | Vælg dokumentets node fra den aktuelle valgte node, uanset deres placering. |
. | Vælg den aktuelle node. |
.. | Vælg den forældre node til den aktuelle node. |
@ | Vælg egenskab. |
Eksempel
I nedenstående tabel har vi listet nogle stiplæsninger og deres resultater:
Stiudtryk | Resultat |
---|---|
bookstore | Vælg alle underordnede noder af bookstore-elementet. |
/bookstore |
Vælg rod-elementet bookstore. Bemærk: Hvis stien starter med en ret linje (/), repræsenterer denne sti altid en absolut sti til et element! |
bookstore/book | Vælg alle book-elementer, der er underordnede elementer af bookstore. |
//book | Vælg alle book-underordnede elementer, uanset deres placering i dokumentet. |
bookstore//book | Vælg alle book-efterkommere af bookstore-elementet, uanset deres placering under bookstore. |
//@lang | Vælg alle @lang-attributter. |
Predikat (Predicates)
Predikatet bruges til at finde en bestemt node eller en node, der indeholder en specificeret værdi.
Predikatet er indlejret i klammer.
Eksempel
I nedenstående tabel viser vi nogle predikat-pålæsninger og deres resultater:
Stiudtryk | Resultat |
---|---|
/bookstore/book[1] | Vælg det første book-element, der er et barn af bookstore-elementet. |
/bookstore/book[last()] | Vælg den sidste book-element, der er et barn af bookstore-elementet. |
/bookstore/book[last()-1] | Vælg den anden sidste book-element, der er et barn af bookstore-elementet. |
/bookstore/book[position()<3] | Vælg de to første book-elementer, der er børn af bookstore-elementet. |
//title[@lang] | Vælg alle title-elementer, der har en lang-attribut. |
//title[@lang='eng'] | Vælg alle title-elementer, der har en lang-attribut med værdien eng. |
/bookstore/book[price>35.00] | Vælg alle book-elementer inden for bookstore-elementet, hvor price-elementets værdi skal være større end 35.00. |
/bookstore/book[price>35.00]/title | Vælg alle title elementer i book elementer i bookstore, hvor price elementets værdi skal være større end 35.00. |
Vælg ukendte knudepunkter
XPath wildcards kan bruges til at vælge ukendte XML elementer.
Wildcards | Beskrivelse |
---|---|
* | Matcher alle elementknudepunkter. |
@* | Matcher alle egenskabsknudepunkter. |
node() | Matcher alle typer af knudepunkter. |
Eksempel
I nedenstående tabel viser vi nogle stiudtryk samt resultaterne af disse udtryk:
Stiudtryk | Resultat |
---|---|
/bookstore/* | Vælg alle underelementer af bookstore elementet. |
//* | Vælg alle elementer i dokumentet. |
//title[@*] | Vælg alle title elementer med egenskaber. |
Vælg flere stier
Ved at bruge operatoren "|" i stiudtryk kan du vælge flere stier.
Eksempel
I nedenstående tabel viser vi nogle stiudtryk samt resultaterne af disse udtryk:
Stiudtryk | Resultat |
---|---|
//book/title | //book/price | Vælg alle title og price elementer i book elementet. |
//title | //price | Vælg alle title og price elementer i dokumentet. |
/bookstore/book/title | //price | Vælg alle title elementer, der tilhører book elementer i bookstore, samt alle price elementer i dokumentet. |
- Forrige side XPath knudepunkter
- Næste side XPath akser