XPath-akselit (akselit)

XML-esimerkkidokumentti

Käytämme tätä XML-dokumenttia seuraavassa esimerkissä:

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

Akseli määrittelee solmunjoukon suhteessa nykyiseen solmuun. Tulos
Akselin nimi ancestor
Valitse nykyisen solmun kaikki esi-isät (äiti, isoväki jne.). ancestor-or-self
Valitse nykyisen solmun kaikki esi-isät (äiti, isoväki jne.) sekä nykyinen solmu itsessään. Valitse nykyisen solmun kaikki attribuutit.
attribute Valitse nykyisen solmun kaikki lapsielementit.
child descendant
Valitse nykyisen solmun kaikki jälkeläiset elementit (lapsi, lapsenlapsi jne.). descendant-or-self
Valitse nykyisen solmun kaikki jälkeläiset elementit (lapsi, lapsenlapsi jne.) sekä nykyinen solmu itsessään. following
Valitse nykyisen solmun alkusignaalimerkin jälkeen olevat kaikki solmut. namespace
Valitse nykyisen solmun kaikki nimenkutsu-solmut. parent
Valitse nykyisen solmun emo-solmu. preceding
Valitse nykyisen solmun alkusignaalimerkin edellä olevat kaikki solmut. preceding-sibling
Valitse nykyisen solmun kaikki edeltävät samanlaiset solmut. self

Valitse nykyinen solmu.

Sijaintipolkuilmaisu

Sijaintipolku voi olla joko absoluuttinen tai suhteellinen.

Absoluuttinen sijaintipolku: Absoluuttinen polku alkaa oikealla vinoviivalla (/), mutta suhteellinen polku ei. Molemmissa tapauksissa sijaintipolku sisältää yhden tai useamman askeleen, ja jokainen askel erotellaan viivalla:

/step/step/...

Suhteellinen sijaintipolku:

step/step/...

Jokainen askel lasketaan nykyisen solmunjoukon solmujen perusteella.

Askeleet (step) sisältävät:

Akseli (axis)
Määritä valittujen solmujen ja nykyisen solmun välinen puurakenne
Solmutesti (node-test)
Tunnista jokin akselissa oleva solmu
Nolla tai useita lausekkeita (predicate)
Tiekohtaisesti hienosäätä valittua solmunjoukkoa

Askeleen syntaksi:

Akselin nimi::solmu_testi[lauseke]

Esimerkki

Esimerkki Tulos
child::book Valitse kaikki nykyisen solmun lapsielementtien book-solmut.
attribute::lang Valitse nykyisen solmun lang-ominaisuus.
child::* Valitse nykyisen solmun kaikki lapsielementit.
attribute::* Valitse nykyisen solmun kaikki attribuutit.
child::text() Valitse nykyisen solmun kaikki tekstilapsisolmut.
child::node() Valitse nykyisen solmun kaikki lapsisolmut.
descendant::book Valitse kaikki book-lapsisolmut nykyisestä solusta.
ancestor::book Valitse kaikki book-esi-isät
ancestor-or-self::book Valitse kaikki book-esi-isät ja nykyinen solu (jos nykyinen solu on book-solmu)
child::*/child::price Valitse kaikki price-lapsisolmut nykyisestä solusta.