Top-Fragen
Zeitleiste
Chat
Kontext
XPath
Abfragesprache zum Adressieren von XML-Elementen Aus Wikipedia, der freien Enzyklopädie
Remove ads
Die XML Path Language (XPath) ist eine vom W3-Konsortium entwickelte Abfragesprache, um Teile eines XML-Dokuments zu adressieren und auszuwerten. XPath dient als Grundlage einer Reihe weiterer Standards wie XSLT, XPointer und XQuery. XPath ist derzeit in der Version 3.1 vom 21. März 2017 standardisiert.
In Webbrowsern, XSLT-Prozessoren und anderer Software wird oft nur die XPath-Version 1.0 aus dem Jahr 1999 unterstützt, vereinzelt jedoch auch die XPath-Version 2.0 von 2007.
Remove ads
Prinzipien
Zusammenfassung
Kontext
Ein XPath-Ausdruck adressiert Teile eines XML-Dokuments, das dabei als Baum betrachtet wird, wobei einige Unterschiede zum „klassischen“ Baum der Graphentheorie zu beachten sind:
- Knoten (nodes) des Baums sind der Dokumenten-Knoten, XML-Elemente, -Attribute, -Textknoten, -Kommentare, -Namensräume und -Verarbeitungsanweisungen.
- Die Achsen
preceding,following,preceding-siblingundfollowing-siblingorientieren sich nicht allein an der Baumstruktur, sondern auch an der Reihenfolge der Deklaration der Elemente im XML-Dokument (Linked-Tree).
Ein XPath-Ausdruck setzt sich aus einem oder mehreren Lokalisierungsschritten (Location Steps) zusammen. Sie werden mit dem Zeichen "/" getrennt.
Ein Lokalisierungsschritt axis::node-test[predicate 1][predicate 2]... besteht aus:
- Achse (axis) und
- Knotentest (node-test),
- Optional gefolgt von einem oder mehreren Prädikaten (predicates).
Beliebig viele XPath-Ausdrücke lassen sich mit dem Pipe-Zeichen "|" mengenmäßig vereinigen.
Es gibt verschiedene Möglichkeiten, eine gesuchte Knotenmenge in XPath auszudrücken.
XPath operiert auf der logischen Dokumentenstruktur. Das bedeutet beispielsweise, dass Entitäten bereits geparst wurden oder dass auch eventuelle Standard-Attribute und -Knoten, die ein Schema vorgeben, im Baum enthalten sind.
Remove ads
Achsen
Zusammenfassung
Kontext
Durch Angabe von Achsen wird ausgehend vom aktuellen Kontextknoten in der Baumstruktur des XML-Dokuments navigiert.
Wird dabei vom Dokument-Knoten (der Wurzel des XML-Dokuments) ausgegangen, wird dem XPath-Ausdruck das Zeichen "/" vorangestellt.
Dieser Baum visualisiert beispielhaft die Struktur eines XML-Dokuments.
| Dokument-Knoten | |||||||||||||||||||||||||||||||||
| A | |||||||||||||||||||||||||||||||||
| B | L | ||||||||||||||||||||||||||||||||
| C | (D) | H | I | ||||||||||||||||||||||||||||||
| E | G | J | K | ||||||||||||||||||||||||||||||
| F | |||||||||||||||||||||||||||||||||
Die fünf Achsen self, ancestor, descendant, preceding und following bilden ausgehend von einem beliebigen Knoten den Dokumentbaum vollständig und überlappungsfrei ab.[1]
Remove ads
Knotentests
Knotentests (geschrieben Achse::Knotentest) schränken die Elementauswahl einer Achse ein:
- Angabe eines Elementnamens wählt alle entsprechenden Elemente.
Beispiel:/descendant-or-self::Foowählt alle Elemente im Dokument die den Namen „Foo“ haben. - Mit dem Zeichen
*wählt man beliebige Elemente.
Beispiel:/descendant-or-self::Foo/child::*wählt alle Elemente im Dokument die Kinder von Elementen mit dem Namen „Foo“ sind. - Mit
text(),comment()undprocessing-instruction()lassen sich Knoten bestimmten Typs wählen.
Prädikate
Zusammenfassung
Kontext
Durch Angabe von Prädikaten kann das Ergebnis weiter eingeschränkt werden. Prädikate werden in eckige Klammern eingeschlossen und können in beliebiger Zahl hintereinander geschrieben werden, wobei die Reihenfolge wesentlich ist. Prädikate können XPath-Ausdrücke enthalten, außerdem kann eine Vielzahl von Funktionen und Operatoren verwendet werden. Die sind zum Beispiel:
- Zugriffsindex (Zählung beginnt bei 1)
- Relationszeichen:
= != and or < > <= >= - Zeichenkettenfunktionen:
normalize-space()– Entfernen von Leerzeichen am Anfang und Ende des Strings und Reduktion aufeinanderfolgender Leerzeichen auf eines.substring()– Einen Teilstring selektieren.substring-before(source, splitter)– Einen Teilstring vor dem ersten Vorkommen des Trennzeichens selektieren.substring-after(source, splitter)– Einen Teilstring nach dem ersten Vorkommen des Trennzeichens selektieren.string-length()– Die Länge des Strings.
- Numerische Operatoren:
+ - * div mod - Knotenmengen-Funktionen:
count()– Anzahl der Knoten in einer Knotenmenge.id()– Selektiert Elemente über die DTD-ID.name()– Name des Knotens.
Beispiele:
//child::Buch/KapitelAlle Kapitel aller Bücher.//child::Buch/Kapitel[1]Alle ersten Kapitel aller Bücher.//child::Buch[count(./Seite)<=100][count(./Seite)>=10]liefert alle Knoten vom Typ „Buch“ die mindestens 10 aber höchstens 100 Kindelemente vom Typ „Seite“ haben.
(das Gleiche leistet //Buch[count(Seite)<=100 and count(Seite)>=10])
substring-before($variable, ':')Selektiert den Teilstring vor dem ersten Doppelpunkt aus dem Wert der Variable mit dem Namen "variable".
Remove ads
Beispiel
Zusammenfassung
Kontext
Gegeben sei folgendes XML-Dokument:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<dok>
<!-- ein XML-Dokument -->
<kap title="Nettes Kapitel">
<pa>Ein Absatz</pa>
<pa>Noch ein Absatz</pa>
<pa>Und noch ein Absatz</pa>
<pa>Nett, oder?</pa>
</kap>
<kap title="Zweites Kapitel">
<pa>Ein Absatz</pa>
<pa format="bold">Erste Zeile</pa>
<pa format="bold">Zweite Zeile</pa>
<pa format="italic">Dritte Zeile</pa>
</kap>
</dok>
Beispiele für XPath-Ausdrücke:
XPath-Visualisierer helfen, die mitunter komplizierten XPath-Abfragen auf konkrete XML-Dateien anzuwenden.
Remove ads
Siehe auch
Literatur
- Michael Kay: XPath 2.0 Programmer’s Reference. Wrox Press, 2004, ISBN 0-7645-6910-4 (englisch)
- Margit Becher: XML – DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM. W3L Verlag, Witten 2009, ISBN 978-3-937137-69-8.
Weblinks
Wiktionary: XPath – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
- XML Path Language (XPath) Version 1.0; sowie deutsche Übersetzung
- XML Path Language (XPath) Version 2.0
- XML Path Language (XPath) Version 3.1
- XQuery 1.0 and XPath 2.0 Functions and Operators
- XPath Tutorial auf Deutsch
- XPath Tutorial von w3schools
- ZVON: XPath Tutorial in deutscher Sprache
- FH Wedel: XLink, XPath, XPointer
- HTMLWorld: XPath
- XPath Achsen Diagramme
- XPath Visualizer stellt XPath-Ausdrücke visuell auf Basis beliebiger XML-Dateien dar.
- umfangreiche XPath 2.0 Referenz mit Beispielen
Remove ads
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads