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 |