Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
XPath-Abfragen werden in Form eines Ausdrucks angegeben. Es gibt verschiedene Arten von Ausdrücken. Ein Speicherortpfad ist ein Ausdruck, der einen Satz von Knoten relativ zum Kontextknoten auswählt. Das Ergebnis der Auswertung eines Standortpfads ist ein Knotensatz.
Typen von Speicherortpfaden
Ein Speicherortpfad kann eine der folgenden Formen annehmen:
Absoluter Standortpfad
Ein absoluter Speicherortpfad beginnt am Stammknoten des Dokuments. Sie besteht aus einem Schrägstrich (/) optional gefolgt von einem relativen Positionspfad. Mit dem Schrägstrich (/) wird der Stammknoten des Dokuments ausgewählt.
Relativer Speicherortpfad
Ein relativer Speicherortpfad beginnt am Kontextknoten im Dokument. Ein Speicherortpfad besteht aus einer Sequenz von mindestens einem Standortschritt, der durch ein Schrägstrich (/) getrennt ist. Jeder Schritt wählt einen Satz von Knoten relativ zum Kontextknoten aus. Die erste Abfolge der Schritte wählt einen Satz von Knoten relativ zu einem Kontextknoten aus. Jeder Knoten in diesem Satz wird als Kontextknoten für den folgenden Schritt verwendet. Die Sätze von Knoten, die durch diesen Schritt identifiziert werden, werden verknüpft. Beispielsweise wählt child::Order/child::OrderDetail das <untergeordnete Element OrderDetail> des Untergeordneten Elements Order> des< Kontextknotens aus.
Hinweis
In der SQLXML 4.0-Implementierung von XPath beginnt jede XPath-Abfrage im Stammkontext, auch wenn der XPath nicht explizit absolut ist. Beispielsweise wird eine XPath-Abfrage, die mit "Customer" beginnt, als "/Customer" behandelt. In der XPath-Abfrage "Customer[Order]" beginnt "Kunde" im Stammkontext, "Order" beginnt jedoch im Kundenkontext. Weitere Informationen finden Sie in der Einführung in die Verwendung von XPath-Abfragen (SQLXML 4.0).
Standortschritte
Ein Speicherortpfad (absolut oder relativ) besteht aus Positionsschritten, die drei Teile enthalten:
Achsen
Die Achse gibt die Strukturbeziehung zwischen den Knoten an, die durch den Positionsschritt und den Kontextknoten ausgewählt wurden. Die
parentAchsen ,child,attribute, undselfAchsen werden unterstützt. Wenn einechildAchse im Positionspfad angegeben ist, sind alle von der Abfrage ausgewählten Knoten die untergeordneten Elemente des Kontextknotens. Wenn eineparentAchse angegeben wird, ist der ausgewählte Knoten der übergeordnete Knoten des Kontextknotens. Wenn eineattributeAchse angegeben wird, sind die ausgewählten Knoten die Attribute des Kontextknotens.Knotentest
Ein Knotentest gibt den Vom Standortschritt ausgewählten Knotentyp an. Jede Achse (
child,parent,attributeundself) weist einen Prinzipalknotentyp auf. Für dieattributeAchse ist <der Prinzipalknotentyp Attribut>. Für dieparent,childundselfAchsen ist <der Prinzipalknotentyp Element>.Wenn der Speicherortpfad beispielsweise "child::Customer" angibt, werden die <untergeordneten Elemente des Kontextknotens "Customer> " ausgewählt. Da die
childAchse ein Element> als Prinzipalknotentyp aufweist<, ist der Knotentest "Kunde" WAHR, wenn "Kunde" ein <Elementknoten> ist.Auswahl-Prädikate (null oder mehr)
Ein Prädikat filtert einen Knotensatz in Bezug auf eine Achse. Das Angeben von Auswahl-Prädikaten in einem XPath-Ausdruck ähnelt dem Angeben einer WHERE-Klausel in einer SELECT-Anweisung. Das Prädikat wird zwischen eckigen Klammern angegeben. Durch Anwenden des in den Auswahl-Prädikaten angegebenen Tests werden die Knoten gefiltert, die vom Knotentest zurückgegeben werden. Für jeden Knoten im Knotensatz, der gefiltert werden soll, wird der Prädikatausdruck mit diesem Knoten als Kontextknoten ausgewertet, wobei die Anzahl der Knoten im Knotensatz als Kontextgröße ausgewertet wird. Wenn der Prädikatausdruck für diesen Knoten als WAHR ausgewertet wird, wird der Knoten im resultierenden Knotensatz enthalten.
Die Syntax für einen Positionsschritt ist der Achsenname und der Knotentest, getrennt durch zwei Doppelpunkte (::), gefolgt von null oder mehr Ausdrücken, die jeweils in eckigen Klammern enthalten sind. Der untergeordnete XPath-Ausdruck (Speicherortpfad) beispielsweise ::Customer[@CustomerID='ALFKI'] wählt alle untergeordneten Elemente des <Customer-Elements> des Kontextknotens aus. Anschließend wird der Test im Prädikat auf den Knotensatz angewendet, der nur die <Customer-Elementknoten> mit dem Attributwert "ALFKI" für sein CustomerID-Attribut zurückgibt.
In diesem Abschnitt
Angeben einer Achse (SQLXML 4.0)
Stellt Beispiele für die Angabe einer Achse bereit.
Angeben eines Knotentests im Speicherortpfad (SQLXML 4.0)
Stellt Beispiele zum Angeben eines Knotentests bereit.
Angeben von Auswahl-Prädikaten im Speicherortpfad (SQLXML 4.0)
Stellt Beispiele für die Angabe von Auswahl-Prädikaten bereit.