XPath-Syntax
- Vorherige Seite XPath-Knoten
- Nächste Seite XPath-Achsen
XPath verwendet Pfadausdrücke, um Knoten oder Knotensammlungen in XML-Dokumenten auszuwählen. Knoten werden entlang eines Pfades (Pfad) oder Schritten (Steps) ausgewählt.
XML-Beispiel-Dokument
Wir werden in den folgenden Beispielen dieses 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>
Knotenauswahl
XPath verwendet Pfadausdrücke, um Knoten in XML-Dokumenten auszuwählen. Knoten werden entlang eines Pfades oder Schritts ausgewählt.
Nachstehend sind die nützlichsten Pfade aufgelistet:
Ausdruck | Beschreibung |
---|---|
nodename | Wählen Sie alle Kindknoten dieses Knotens. |
/ | Wählen Sie vom Wurzelknoten aus. |
// | Wählen Sie Knoten aus, die im Dokument mit dem aktuellen Auswahlknoten übereinstimmen, ohne Rücksicht auf ihre Position. |
. | Wählen Sie den aktuellen Knoten. |
.. | Wählen Sie den Elternknoten des aktuellen Knotens. |
@ | Wählen Sie Attribute. |
Beispiel
Im folgenden Tisch haben wir einige Pfade und deren Ergebnisse aufgelistet:
Pfadausdruck | Ergebnis |
---|---|
bookstore | Wählen Sie alle Kindknoten des Elements bookstore aus. |
/bookstore |
Wählen Sie den Wurzelelement bookstore aus. Anmerkung: Wenn der Pfad mit einem Backslash (/) beginnt, dann stellt dieser Pfad stets einen absoluten Pfad zu einem Element dar! |
bookstore/book | Wählen Sie alle book-Elemente, die als Kinder des Elements bookstore auftreten. |
//book | Wählen Sie alle book-Subelemente, egal wo sie sich im Dokument befinden. |
bookstore//book | Wählen Sie alle book-Elemente, die als Nachkommen des Elements bookstore auftreten, egal wo sie sich im Dokument befinden. |
//@lang | Wählen Sie alle Attribute mit dem Namen lang. |
Prädikate (Predicates)
Prädikate werden verwendet, um einen bestimmten Knoten oder einen Knoten mit einem bestimmten Wert zu finden.
Prädikate werden in eckigen Klammern eingebettet.
Beispiel
Im folgenden Tisch haben wir einige Pfade mit Prädikaten und deren Ergebnisse aufgelistet:
Pfadausdruck | Ergebnis |
---|---|
/bookstore/book[1] | Wählen Sie das erste book-Element, das als Kind des Elements bookstore auftritt. |
/bookstore/book[last()] | Wählen Sie das letzte book-Element, das als Kind des Elements bookstore auftritt. |
/bookstore/book[last()-1] | Wählen Sie das zweite letztgenannte book-Element, das als Kind des Elements bookstore auftritt. |
/bookstore/book[position()<3] | Wählen Sie die ersten beiden book-Elemente, die als Kinder des Elements bookstore auftreten. |
//title[@lang] | Wählen Sie alle title-Elemente aus, die das Attribut lang haben. |
//title[@lang='eng'] | Wählen Sie alle title-Elemente aus, die das Attribut lang mit dem Wert eng haben. |
/bookstore/book[price>35.00] | Wählen Sie alle book-Elemente des Elements bookstore aus, deren price-Element einen Wert größer als 35,00 hat. |
/bookstore/book[price>35.00]/title | Wählen Sie alle title-Elemente des book-Elements im bookstore-Element aus, deren price-Elementenwert größer als 35,00 ist. |
Unbekannte Knoten auswählen
XPath-Wildcards können verwendet werden, um unbekannte XML-Elemente auszuwählen.
Wildcard | Beschreibung |
---|---|
* | Passen auf jeden Elementknoten |
@* | Passen auf jeden Attributknoten |
node() | Passen auf jeden Knotentyp |
Beispiel
In der folgenden Tabelle listen wir einige Pfadausdrücke und deren Ergebnisse auf:
Pfadausdruck | Ergebnis |
---|---|
/bookstore/* | Wählen Sie alle Unterelemente des bookstore-Elements aus. |
//* | Wählen Sie alle Elemente im Dokument aus. |
//title[@*] | Wählen Sie alle title-Elemente mit Attributen aus. |
Wählen Sie mehrere Pfade aus
Durch die Verwendung des Operators "|" in Pfadausdrücken können Sie mehrere Pfade auswählen.
Beispiel
In der folgenden Tabelle listen wir einige Pfadausdrücke und deren Ergebnisse auf:
Pfadausdruck | Ergebnis |
---|---|
//book/title | //book/price | Wählen Sie alle title- und price-Elemente des book-Elements aus. |
//title | //price | Wählen Sie alle title- und price-Elemente im Dokument aus. |
/bookstore/book/title | //price | Wählen Sie alle title-Elemente, die dem bookstore-Element gehören, sowie alle price-Elemente im Dokument aus. |
- Vorherige Seite XPath-Knoten
- Nächste Seite XPath-Achsen