XPath syntax
- Föregående sida XPath node
- Nästa sida XPath axlar
XPath använder sökvägsexpressioner för att välja noder eller noduppsättningar i ett XML-dokument. Noder väljs genom att följa sökvägen (path) eller stegen (steps).
XML-exempel
Vi kommer att använda detta XML-dokument i de följande exemplen.
<?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änds för att välja noder i ett XML-dokument med hjälp av en sökvägsexpression. Noder väljs genom att följa sökvägen eller stegen.
Nedan listas de mest användbara sökvägsexpressionerna:
Uttryck | Beskrivning |
---|---|
nodename | Välj alla underlättningar till denna nod. |
/ | Välj från roten. |
// | Välj dokumentets noder från den aktuella matchade 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ägar och deras resultat:
Sökvägsexpression | Resultat |
---|---|
bookstore | Välj alla underlättningar till bookstore-elementet. |
/bookstore |
Välj root-elementet bookstore. Kommentar: Om sökvägen börjar med en vertikal streck (/), representerar denna sökväg alltid den absoluta vägen till ett element! |
bookstore/book | Välj alla book-element som är underlättningar till bookstore-elementet. |
//book | Välj alla book-underlättningar, oavsett deras plats i dokumentet. |
bookstore//book | Välj alla book-element som är underlättningar till bookstore-elementet, oavsett deras plats under bookstore. |
//@lang | Välj alla egenskaper som heter lang. |
Predikat (Predicators)
Predikat används för att hitta specifika noder eller noder som innehåller specifika värden.
Predikat är inskrivna i klamrar.
Exempel
I tabellen nedan har vi listat några predikat och deras resultat:
Sökvägsexpression | Resultat |
---|---|
/bookstore/book[1] | Välj det första book-elementet i bookstore-elementet. |
/bookstore/book[last()] | Välj det sista book-elementet i bookstore-elementet. |
/bookstore/book[last()-1] | Välj det andra book-elementet från slutet i bookstore-elementet. |
/bookstore/book[position()<3] | Välj de två första book-elementen som är under bookstore-elementet. |
//title[@lang] | Välj alla title-element som har en lang-egenskap. |
//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 inom 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 från 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 |
---|---|
* | Matchar alla elementnoder. |
@* | Matchar alla egenskapsnoder. |
node() | Matchar alla typer av noder. |
Exempel
I tabellen nedan listas några sökvägsexpressioner och resultaten av dessa uttryck:
Sökvägsexpression | Resultat |
---|---|
/bookstore/* | Välj alla underlement till bookstore-elementet. |
//* | Välj alla element i dokumentet. |
//title[@*] | Välj alla title-element med egenskaper. |
Välj flera sökvägar
Genom att använda operatören "|" i sökvägsexpressioner kan du välja flera sökvägar.
Exempel
I tabellen nedan listas några sökvägsexpressioner och resultaten av dessa uttryck:
Sökvägsexpression | Resultat |
---|---|
//book/title | //book/price | Välj alla title- och price-element från book-elementet. |
//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 node
- Nästa sida XPath axlar