Share via


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
    
    ms256199.note(de-de,VS.100).gifHinweis:
    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.