XPath-syntaks
- Föregående sida XPath-noder
- Nästa sida XPath-axlar
XPath använder sökvägsuttryck för att välja noder eller nodgrupper i XML-dokument. Noder väljs genom att följa sökvägen (path) eller stegen (steps).
XML-exempel
Vi kommer att använda denna XML-dokument i våra exempel nedan.
<?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älj noder
XPath använder sökvägsuttryck för att välja noder i XML-dokument. Noder väljs genom att följa sökvägen eller stegen.
Nedan listas de mest användbara sökvägsuttrycken:
Uttryck | Beskrivning |
---|---|
nodename | Välj alla undernoder till denna nod. |
/ | Välj från roden. |
// | Välj noder i dokumentet som matchar den aktuella valda noden, utan att ta hänsyn till deras plats. |
. | Välj den aktuella noden. |
.. | Välj föräldern till den aktuella noden. |
@ | Välj egenskap. |
Exempel
I tabellen nedan har vi listat några sökvägsuttryck och deras resultat:
Sökvägsexpression | Resultat |
---|---|
bookstore | Välj alla undernoder till bookstore-elementet. |
/bookstore |
Välj roden elementet bookstore. Anmärkning: Om sökvägen börjar med en direkt skråstreck (/), representerar denna sökväg alltid den absoluta vägen till ett element! |
bookstore/book | Välj alla book-element som är underelement till bookstore. |
//book | Välj alla book-underelement, oavsett deras plats i dokumentet. |
bookstore//book | Välj alla book-element som är efterkommande till bookstore-element, oavsett deras plats under bookstore. |
//@lang | Välj alla egenskaper med namnet lang. |
Predikat (Predicates)
Predikat används för att hitta specifika noder eller noder som innehåller specifika värden.
Predikat är inskrivna i klamrar.
Exempel
I följande tabell listas några sökvägsexpressioner med predikat samt resultaten av dessa uttryck:
Sökvägsexpression | Resultat |
---|---|
/bookstore/book[1] | Välj det första book-elementet som är ett underelement till bookstore-elementet. |
/bookstore/book[last()] | Välj det sista book-elementet som är ett underelement till bookstore-elementet. |
/bookstore/book[last()-1] | Välj det andra sista book-elementet som är ett underelement till bookstore-elementet. |
/bookstore/book[position()<3] | Välj de två första book-elementen som är underelement till bookstore-elementet. |
//title[@lang] | Välj alla title-element som har en egenskap med namnet lang. |
//title[@lang='eng'] | Välj alla title-element som har en lang-egenskap med värdet eng. |
/bookstore/book[price>35.00] | Välj alla book-element i bookstore-elementet, där price-elementets värde måste vara större än 35.00. |
/bookstore/book[price>35.00]/title | Välj alla title-element i book-elementet i bookstore-elementet, där price-elementets värde måste vara större än 35.00. |
Välj okända noder
XPath wildcards kan användas för att välja okända XML-element.
Wildcards | Beskrivning |
---|---|
* | Matcha alla elementnoder. |
@* | Matcha alla egenskapsnoder. |
node() | Matcha alla typer av noder. |
Exempel
I följande tabell listas några sökvägsexpressioner samt resultaten av dessa uttryck:
Sökvägsexpression | Resultat |
---|---|
/bookstore/* | Välj alla underelement till bookstortlementet. |
//* | Välj alla element i dokumentet. |
//title[@*] | Välj alla title-element som har egenskaper. |
Välj flera sökvägar
Genom att använda operatorsättet "|" i sökvägsexpressioner kan du välja flera sökvägar.
Exempel
I följande tabell listas några sökvägsexpressioner samt resultaten av dessa uttryck:
Sökvägsexpression | Resultat |
---|---|
//book/title | //book/price | Välj alla title- och price-element från book-elementen. |
//title | //price | Välj alla title och price-element i dokumentet. |
/bookstore/book/title | //price | Välj alla title-element som tillhör bookstore-elementet och alla price-element i dokumentet. |
- Föregående sida XPath-noder
- Nästa sida XPath-axlar