XPath syntaksi

XPath käyttää polkuilmauksia valitakseen solmuja tai solmujoukkoa XML-dokumentista. Solmut valitaan polun (path) tai askelten (steps) avulla.

XML-esimerkkidokumentti

Käytämme tätä XML-dokumenttia seuraavissa esimerkeissä.

<?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>

Solmun valinta

XPath käyttää polkuilmauksia valitakseen solmuja XML-dokumentista. Solmut valitaan polun tai askelten avulla.

Alla luetellaan kaikkein hyödyllisimmät polkuilmaukset:

Ilmaisu Kuvaus
nodename Valitaan tämän solmun kaikki lapsisolmut.
/ Valitaan juuri-solmu.
// Valitaan dokumentin solmut, jotka vastaavat valittua solmua, riippumatta niiden sijainnista.
. Valitaan nykyinen solmu.
.. Valitaan nykyisen solmun emo-solmu.
@ Valitaan ominaisuudet.

Esimerkki

Alla olevassa taulukossa on lueteltu joitakin polkuilmauksia ja niiden tuloksia:

Polkumuotoilija Tulokset
bookstore Valitaan bookstore-elementin kaikki lapsisolmut.
/bookstore

Valitaan juuri-elementti bookstore.

Huomautus: Jos polku alkaa absolute path ( / ), polku edustaa aina absolute path johonkin elementtiin!

bookstore/book Valitaan kaikki bookstore-elementin lapsielementit omaavat book-elementit.
//book Valitaan kaikki book-lapsielementit riippumatta niiden sijainnista dokumentissa.
bookstore//book Valitaan kaikki bookstore-elementin jälkeläiset book-elementit, riippumatta niiden sijainnista bookstore-elementin alla.
//@lang Valitaan kaikki nimeltä lang omaavat ominaisuudet.

Predikaattorit (Predicates)

Predikaattori käytetään tietyn solmun tai solmun, joka sisältää tietyn arvon, löytämiseen.

Predikaattori on sisällytetty square brackets sisään.

Esimerkki

Alla olevassa taulukossa luetellaan joitakin predikaattoreita ja niiden tuloksia:

Polkumuotoilija Tulokset
/bookstore/book[1] Valitaan bookstore-alihakemiston ensimmäinen book-elementti.
/bookstore/book[last()] Valitaan bookstore-alihakemiston viimeinen book-elementti.
/bookstore/book[last()-1] Valitaan bookstore-alihakemiston viimeinen toinen book-elementti.
/bookstore/book[position()<3] Valitaan ensimmäiset kaksi bookstore-elementin alihakemistoa omaavaa book-elementtiä.
//title[@lang] Valitaan kaikki lang-nimisen ominaisuuden omaavat title-elementit.
//title[@lang='eng'] Valitaan kaikki title-elementit, joilla on arvona eng lang-ominaisuus.
/bookstore/book[price>35.00] Valitaan kaikki bookstore-elementin book-elementit, ja niiden price-elementin arvon on oltava suurempi kuin 35.00.
/bookstore/book[price>35.00]/title Valitse kaikki bookstore-elementin book-elementin title-elementit, ja niiden price-elementin arvon tulee olla suurempi kuin 35.00.

Valitse tuntemattomat solmut

XPath sovellusmerkinnät voidaan käyttää tuntemattomien XML-elementtien valintaan.

Sovellus Kuvaus
* Tunnista kaikki elementtisolmut.
@* Tunnista kaikki attribuuttisolmut.
node() Tunnista kaikki solmutyyppiset solmut.

Esimerkki

Seuraavassa taulukossa luetellaan joitakin polkumuotoilijoita ja näiden muotoilijoiden tuloksia:

Polkumuotoilija Tulokset
/bookstore/* Valitse kaikki bookstore-elementin alielementit.
//* Valitse kaikki dokumentin elementit.
//title[@*] Valitse kaikki attribuutteja sisältävät title-elementit.

Valitse useita polkuja

Voit valita useita polkuja käyttämällä polkumuotoilijassa "|"-laskinta.

Esimerkki

Seuraavassa taulukossa luetellaan joitakin polkumuotoilijoita ja näiden muotoilijoiden tuloksia:

Polkumuotoilija Tulokset
//book/title | //book/price Valitse kaikki book-elementin title- ja price-elementit.
//title | //price Valitse kaikki dokumentin title- ja price-elementit.
/bookstore/book/title | //price Valitse kaikki bookstore-elementin book-elementin title-elementit ja kaikki dokumentin price-elementit.