XPath-Axen (Axe)

XML-Beispiel Dokument

Wir werden in den folgenden Beispielen diesen XML-Dokument verwenden:

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

XPath-Achse

Die Achse kann eine Knotensammlung definieren, die sich relativ zum aktuellen Knoten befindet.

Achsenname Ergebnis
ancestor Wählen Sie alle Vorfahren (Eltern, Großeltern usw.) des aktuellen Knotens.
ancestor-or-self Wählen Sie alle Vorfahren (Eltern, Großeltern usw.) des aktuellen Knotens sowie den aktuellen Knoten selbst.
attribute Wählen Sie alle Attribute des aktuellen Knotens aus.
child Wählen Sie alle Kindelemente des aktuellen Knotens aus.
descendant Wählen Sie alle Nachkommenknoten des aktuellen Knotens (Kinder, Enkelkinder usw.).
descendant-or-self Wählen Sie alle Nachkommenknoten des aktuellen Knotens (Kinder, Enkelkinder usw.) sowie den aktuellen Knoten selbst.
following Wählen Sie alle Knoten nach der Endmarke des aktuellen Knotens im Dokument.
namespace Wählen Sie alle Namensraumknoten des aktuellen Knotens.
parent Wählen Sie den Elternknoten des aktuellen Knotens.
preceding Wählen Sie alle Knoten vor der Startmarke des aktuellen Knotens im Dokument.
preceding-sibling Wählen Sie alle gleichrangigen Knoten vor dem aktuellen Knoten.
self Wählen Sie den aktuellen Knoten.

Positions Pfad Ausdruck

Der Positions Pfad kann entweder absolut oder relativ sein.

Der absolute Pfad beginnt mit dem waagerechten Strich (/), während der relative Pfad nicht so ist. In beiden Fällen enthält der Positions Pfad eine oder mehrere Schritte, die durch einen Strich getrennt sind:

Absoluter Positions-Pfad:

/step/step/...

Relativer Positions-Pfad:

step/step/...

Jeder Schritt wird basierend auf den Knoten berechnet, die sich im aktuellen Knotenmenge befinden.

Schritt (step) einschließlich:

Achse (axis)
Definieren Sie die Baumverbindung zwischen der gewählten Knotenmenge und dem aktuellen Knoten
Knotentest (node-test)
Knoten innerhalb eines bestimmten Axes erkennen
Kein oder mehrere Prädikate (Predicate)
Die Auswahl der gewünschten Knotenmenge weiter verfeinern

Schritt-Syntax:

Axennamen::Knotentest[Prädikat]

Beispiel

Beispiel Ergebnis
child::book Wählen Sie alle book-Knoten aus, die zu den Kindelementen des aktuellen Knotens gehören.
attribute::lang Wählen Sie das lang-Attribut des aktuellen Knotens aus.
child::* Wählen Sie alle Kindelemente des aktuellen Knotens aus.
attribute::* Wählen Sie alle Attribute des aktuellen Knotens aus.
child::text() Wählen Sie alle Textkindknoten des aktuellen Knotens aus.
child::node() Wählen Sie alle Kindknoten des aktuellen Knotens aus.
descendant::book Wählen Sie alle Nachkommenknoten von book aus.
ancestor::book Wählen Sie alle Vorfahrenknoten von book aus.
ancestor-or-self::book Wählen Sie alle Vorfahrenknoten von book und den aktuellen Knoten (falls dieser Knoten ein book-Knoten ist) aus.
child::*/child::price Wählen Sie alle price-Nachkommenknoten des aktuellen Knotens aus.