Kontext für XPath-Ausdrücke
Die Auswertung eines XPath-Ausdrucks hängt vom Kontext ab, mit dem der Ausdruck verwendet wird. Der Kontext besteht aus dem Knoten, für den der Ausdruck ausgewertet wird, sowie aus dessen Umgebung. Diese umfasst Folgendes:
Die Position des Kontextknotens in der Dokumentreihenfolge in bezug auf seine gleichgeordneten Elemente.
Die Größe des Kontexts, d. h. die Anzahl der gleichgeordneten Elemente des Kontextknotens plus 1.
Variablenbindungen, mit deren Hilfe Verweise auf eine Variable aufgelöst werden können.
Eine Funktionsbibliothek.
Die Namespacedeklarationen im Gültigkeitsbereich für den Ausdruck.
Das Konzept des Kontexts wird im Folgenden anhand einer Struktur veranschaulicht, die Knoten enthält. Bei der Abfrage nach allen Knoten mit dem Namen X vom Stamm der Struktur wird ein Resultset zurückgegeben. Wenn jedoch von einer Verzweigung der Struktur aus eine Abfrage nach diesen Knoten erfolgt, wird ein anderes Resultset zurückgegeben. Daher hängt das Ergebnis eines Ausdrucks vom Kontext ab, in dem er ausgeführt wird.
XPath-Ausdrücke können in einem bestimmten Kontext bestimmten Mustern entsprechen, die Ergebnisse zurückgeben und weitere Operationen in bezug auf den Kontext der zurückgegebenen Knoten ausführen. Damit zeichnen sich XPath-Ausdrücke durch eine außergewöhnliche Flexibilität beim Durchsuchen der Dokumentstruktur aus.
XPath-Basisausdrücke
Im Folgenden sind die Basistypen von XPath-Ausdrücken aufgelistet. Jeder Typ wird unten beschrieben.
Aktueller Kontext
Dokumentstamm
Stammelement
Rekursiv absteigend
Bestimmtes Element
Beispiele
In den folgenden Beispielen werden einige XPath-Basisausdrücke veranschaulicht. Komplexere Ausdrücke sind möglich, indem diese einfachen Ausdrücke miteinander kombiniert und die verschiedenen XPath-Operatoren und -Sonderzeichen verwendet werden.
Aktueller Kontext
Ein Ausdruck, dem ein Punkt und ein Schrägstrich (./) als Präfix vorangestellt sind, verwendet explizit den aktuellen Kontext. Beispielsweise verweist der folgende Ausdruck auf alle<author>
-Elemente innerhalb des aktuellen Kontexts:./author
Beachten Sie, dass dies ein Äquivalent zu Folgendem darstellt:
author
Dokumentstamm
Ein Ausdruck, dem ein Schrägstrich (/) als Präfix vorangestellt ist, verwendet den Stamm der Dokumentstruktur als Kontext. Beispielsweise verweist der folgende Ausdruck auf das<bookstore>
-Element am Stamm dieses Dokuments:/bookstore
Stammelement
Ein Ausdruck, der ein Schrägstrich und ein Sternchen (/*) enthält, verwendet das Stammelement als Kontext. Der folgende Ausdruck sucht beispielsweise nach dem Stammelement des Dokuments:/*
Rekursiv absteigend
Ein Ausdruck, der einen doppelten Schrägstrich (//) verwendet, gibt eine Suche an, die 0 (null) oder mehr Ebenen einer Hierarchie umfassen kann. Wenn sich dieser Operator am Anfang des Musters befindet, bezieht sich der Kontext auf den Stamm des Dokuments. Beispielsweise verweist der folgende Ausdruck auf alle<author>
-Elemente an beliebiger Stelle innerhalb des aktuellen Dokuments://author
Das Präfix .// gibt an, dass der Kontext an der Ebene in der Hierarchie beginnt, die durch den aktuellen Kontext angegeben wird.
Bestimmte Elemente
Ein Ausdruck, der mit einem Elementnamen beginnt, verweist auf eine Abfrage des betreffenden Elements, wobei beim aktuellen Kontextknoten begonnen wird. Beispielsweise verweist der folgende Ausdruck auf das<background.jpg>
-Element innerhalb des<images>
-Elements im aktuellen Kontextknoten:images/background.jpg
Der folgende Ausdruck verweist auf die Auflistung von
<book>
-Elementen innerhalb der<bookstore>
-Elemente im aktuellen Kontextknoten:bookstore/book
Der folgende Ausdruck verweist auf alle
<first.name>
-Elemente im aktuellen Kontextknoten:first.name
Hinweis: Elementnamen können Punkte (.) enthalten.Diese Namen können ebenso wie andere Namen verwendet werden.
Kontext im DOM
Beim Verwenden von XPath-Ausdrücken mit dem Microsoft XML-DOM ist der Kontext das Node-Objekt, dessen selectNodes-Methode bzw. selectSingleNode-Methode aufgerufen wird.
Wenn XPath direkt aus dem DOM heraus verwendet wird, definieren Sie den Kontext aus einem bestimmten Knoten.
Kontext in XSLT
Wenn XPath direkt aus XSLT heraus verwendet wird, definieren Sie den Kontext anhand des aktuellen Knotens.
Weitere Ressourcen
Weitere Informationen finden Sie in "XML Path Language (XPath), Version 1.0" (W3C-Empfehlung, 16. November 1999) unter www.w3.org/TR/xpath.