|
|
 |
XML Path Language (XPath)
Status: W3C Recommendation vom 16.11.1999
Version: 1.0
Homepage: http://www.w3.org/TR/xpath
Verfasser: W3C
Die Hauptaufgabe von XPath ist es, eine einheitliche Syntax und Semantik zur Adressierung von Inhalten von XML-Dokumenten und zum Anfragen an XML-Dokumente zur Verfügung zu stellen, welche dann von XSLT, XPointer und XLink benutzt werden kann.
Jedes XML-Dokument ist aus Sicht von XPath baumartig aufgebaut, wobei jedem XML-Objekt ein Knoten enspricht. Jeder Knoten ist von einem bestimmten Typ, der die entsprechende Funktion des Knotens im XML-Dokument wiedergibt. Mögliche Knotentypen sind: Wurzelknoten, Elementeknoten, Attributknoten, Namespaceknoten, Processing-Instruction-Knoten, Kommentarknoten und Textknoten.
Um nun innerhalb des Baumes zu navigieren, gibt es in XPath Lokalisierungspfade, welchen XPath auch seinen Namen verdankt. Lokalisierungspfade können entweder absolut, d.h. von der Wurzel des Baumes ausgehend, oder relativ zu einem bestimmten Knoten (Kontextknoten) des Baumes sein und bestehen aus einzelnen Schritten. Jeder Schritt wiederum ist folgendermaßen aufgebaut: achse::knotentest[prädikat1][prädikat2]...
- Mit Hilfe von Achsen wählt man bestimmte Knoten nach deren logischer Beziehung zum Kontextknoten aus. Es existieren beispielsweise Achsen, die die Kinder oder Eltern eines Kontextknotens auswählen (child, parent).
-
Knotentests schränken eine Knotenmenge in Bezug auf den Knotentyp und den Knotennamen ein.
- Mit Prädikaten kann man eine Knotenmenge noch weiter einschränken. Dazu bietet XPath verschiedene Operatoren und Funktionen an.
Dem interessierten Leser sei zur Veranschaulichung der Lokalisierungspfade das XPath-Tutorial von Zvon.org empfohlen.
| Beispiel eines XML-Dokuments mit der zugehörigen (vereinfachten) Baumdarstellung |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE angebote SYSTEM "beispiel.dtd">
<?xml-stylesheet type="text/xsl" href="tree-view.xsl"?>
<angebote>
<produkt>
<name herkunft="Südafrika">Äpfel</name>
<preis>1,99</preis>
</produkt>
<produkt>
<name herkunft="Spanien">Orangen</name>
<preis>2,49</preis>
</produkt>
</angebote>
root
|
|___processing instruction target=xml-stylesheet instruction=type="text/xsl" href="tree-view.xsl"
|
|___element angebote
|
|___element produkt
| |
| |___element name
| | | \___attribute herkunft = Südafrika
| | |
| | |___text Äpfel
| |
| |___element preis
| |
| |___text 1,99
|
|___element produkt
|
|___element name
| | \___attribute herkunft = Spanien
| |
| |___text Orangen
|
|___element preis
|
|___text 2,49
Die Baumdarstellung wurde mit dem "Pretty XML Tree Viewer" erzeugt.
|
| |