Neueste Web-Entwicklung Tutorials
 

XPath Achsen


Das XML-Dokument Beispiel

Wir werden das folgende XML-Dokument in den folgenden Beispielen verwendet werden.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

XPath Achsen

Eine Achse definiert einen Knotenmenge relativ zum aktuellen Knoten.

AxisName Ergebnis
Vorfahr Wählt alle Vorfahren (parent, grandparent, etc.) des aktuellen Knotens
Vorfahr-or-self Wählt alle Vorfahren (parent, grandparent, etc.) des aktuellen Knotens und der aktuellen Knoten selbst
Attribut Wählt alle Attribute des aktuellen Knotens
Kind Wählt alle Kinder des aktuellen Knotens
Nachkomme Wählt alle Nachkommen (children, grandchildren, etc.) des aktuellen Knotens
descendant-or-self Wählt alle Nachkommen (children, grandchildren, etc.) des aktuellen Knotens und der aktuelle Knoten selbst
es folgen Wählt alles in dem Dokument nach dem schließenden Tag des aktuellen Knotens
following-sibling Wählt alle Geschwister nach dem aktuellen Knoten
Namespace Wählt alle Namespace-Knoten des aktuellen Knotens
Elternteil Wählt die übergeordnete Knoten des aktuellen Knotens
vorangestellt Wählt alle Knoten, die vor dem aktuellen Knoten in dem Dokument erscheinen, mit Ausnahme Vorfahren, Attributknoten und Namensraum-Knoten
preceding-Geschwister Wählt alle Geschwister vor dem aktuellen Knoten
selbst Wählt den aktuellen Knoten

Ort Pfadausdruck

Ein Standort Pfad kann absolut oder relativ sein.

Ein absoluter Positionspfad beginnt mit einem Schrägstrich ( / ) und ein relativer Positionspfad nicht. In beiden Fällen wird die Lage Pfad von einer oder mehreren Stufen besteht, die jeweils durch einen Schrägstrich getrennt:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

Jeder Schritt wird gegen den Knoten in der aktuellen Knotenmenge bewertet.

Ein Schritt besteht aus:

  • eine Achse (defines the tree-relationship between the selected nodes and the current node)
  • ein Knoten-Test (identifies a node within an axis)
  • Null oder mehrere Vergleichselemente (to further refine the selected node-set) zu (to further refine the selected node-set)

Die Syntax für einen Lokalisierungsschritt ist:

axisname::nodetest[predicate]

Beispiele

Beispiel Ergebnis
child :: Buch Wählt alle Buchknoten, die Kinder des aktuellen Knotens sind
Attribut :: lang Wählt das lang Attribut des aktuellen Knotens
Kind::* Wählt alle Kindelemente des aktuellen Knotens
Attribut::* Wählt alle Attribute des aktuellen Knotens
child :: text() Wählt alle Textknoten Kinder des aktuellen Knotens
child :: node() Wählt alle Kinder des aktuellen Knotens
Nachkomme :: Buch Wählt alle Buch Nachfahren des aktuellen Knotens
Vorfahren :: Buch Wählt alle Buch Vorfahren des aktuellen Knotens
Vorfahr-or-self :: Buch Wählt alle Buch Vorfahren des aktuellen Knotens - und die aktuelle als auch wenn es ein Buch Knoten
child :: * / child :: Preis Wählt alle Preis Enkel des aktuellen Knotens