XPath-axlar (axlar)

XML-exempel dokument

Vi kommer att använda detta XML-dokument i följande exempel:

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

Axeln kan definiera en noduppsättning relativt till den aktuella noden. Resultat
Axelnamn ancestor
Välj alla förfäder (förälder, farfar, etc.). ancestor-or-self
Välj alla förfäder (förälder, farfar, etc.) samt den aktuella noden själv. Välj alla egenskaper för den aktuella noden.
attribute Välj alla underkomponenter för den aktuella noden.
child descendant
Välj alla efterkommande element (under, barnbarn, etc.). descendant-or-self
Välj alla efterkommande element (under, barnbarn, etc.) samt den aktuella noden själv. following
Välj alla noder efter den aktuella nodens sluttag i dokumentet. namespace
Välj alla namnrymdsnoder för den aktuella noden. parent
Välj den aktuella nodens föräldern. preceding
Välj alla noder innan den aktuella nodens starttag i dokumentet. preceding-sibling
Välj alla närmaste föregående syskon för den aktuella noden. self

Välj den aktuella noden.

Positionspårsuttryck

Positionspåret kan vara absolut eller relativt.

Absolut positionspår: Absoluta sökvägar börjar med en positiv backstick ( / ), medan relativa sökvägar inte gör det. I båda fallen inkluderar positionspåret en eller flera steg, varje steg är skilt av en snedstreck:)

/step/step/...

Relativ positionspår:

step/step/...

Varje steg beräknas baserat på noderna i den aktuella noduppsättningen

Steg (step) inkluderar:

Axel (axis)
Definiera det trädrelaterade förhållandet mellan den valda noden och den aktuella noden
Nodtest (node-test)
Identifiera noder inom en axel
Inga eller flera predikat (predicate)
Mer detaljerad bearbetning av den valda noduppsättningen

Stegs syntax:

Axelnamn::nodtest[ predikat ]

Exempel

Exempel Resultat
child::book Välj alla book-noder som tillhör alla undernoder för den aktuella noden.
attribute::lang Välj lang-egenskapen för den aktuella noden.
child::* Välj alla underkomponenter för den aktuella noden.
attribute::* Välj alla egenskaper för den aktuella noden.
child::text() Välj alla textundernoder för den aktuella noden.
child::node() Välj alla undernoder för den aktuella noden.
descendant::book Välj alla book efterkommande för den aktuella noden.
ancestor::book Välj alla book anor för den aktuella noden.
ancestor-or-self::book Välj alla book anor och den aktuella noden (om denna nod är en book-nod)
child::*/child::price Välj alla price barnnoder för den aktuella noden.