Freigeben über


Location-Paths (Pfade zum Speicherort)

Ein Location-Path ist ein XPath-Ausdruck, mit dem eine Gruppe von Knoten relativ zum Kontextknoten ausgewählt wird. Bei der Auswertung eines Location-Path-Ausdrucks ergibt sich eine Knotengruppe, die die durch den Location-Path angegebenen Knoten enthält. In einem Location-Path können Ausdrücke rekursiv enthalten sein, mit denen Knotengruppen gefiltert werden.

Syntaktisch gesehen besteht ein Location-Path aus einem oder mehreren Location-Steps, die jeweils durch einen Schrägstrich (/) getrennt sind:

locationstep/locationstep/locationstep

Jeder Location-Step wählt wiederum eine Gruppe von Knoten relativ zum Kontextknoten aus, d. h. zu dem Knoten, der vom vorherigen Location-Step ausgewählt wurde. Ein auf diese Weise ausgedrückter Location-Path ist ein relativer Location-Path. Ein absoluter Location-Path startet beim Stammelement:

/locationstep/locationstep/locationstep

In einem Location-Path werden Location-Steps von links nach rechts ausgewertet. Der linke Location-Step wählt eine Gruppe von Knoten relativ zum Kontextknoten aus. Diese Knoten stellen dann den Kontext für die Verarbeitung des nächste Location-Steps dar. Diese Verarbeitung von Schritten und die Aktualisierung des Kontextknotens werden so oft wiederholt, bis alle Location-Steps verarbeitet sind.

Ein Location-Path kann abgekürzt oder nicht abgekürzt sein.

In einem nicht abgekürzten Location-Path weist ein Location-Step die folgende Syntax auf:

axis::node-test[predicate]

In dieser Syntax gibt axis an, wie die vom Location-Step ausgewählten Knoten mit dem Kontextknoten in Bezug gesetzt werden. node-test gibt den Knotentyp und den erweiterten Namen der vom Location-Step ausgewählten Knoten an. predicate ist ein Filterausdruck, mit dem die Auswahl von Knoten im Location-Step genauer definiert werden kann. Prädikate sind optional. In diesem Fall besteht ein Location-Step nur aus axis:: und node-test. Die folgende Tabelle enthält einige Beispiele.

Nicht abgekürzter Location-Path Beschreibung

child::para[last()]

Wählt das letzte <para>-Element des Kontextknotens aus.

parent::para

Wählt das <para>-Element aus, das das übergeordnete Element des Kontextknotens darstellt.

child::text()

Wählt alle untergeordneten Textknoten des Kontextknotens aus.

child::div/child::para

Wählt das untergeordnete <para>-Element des <div>-Elements aus, das ein untergeordnetes Element des Kontextknotens darstellt.

In einem abgekürzten Location-Path wird der Achsenbezeichner axis:: nicht explizit in einem Location-Step ausgedrückt, sondern durch eine Gruppe von Verknüpfungen impliziert. Die folgende Tabelle enthält einige Beispiele.

Abgekürzter Location-Path Beschreibung

para

Wählt die <para>-Elemente des Kontextknotens aus.

../para

Wählt das <para>-Element aus, das das übergeordnete Element des Kontextknotens darstellt.

text()

Wählt alle untergeordneten Textknoten des Kontextknotens aus.

./div/para

Wählt die untergeordneten <para>-Elemente der untergeordneten <div>-Elemente des Kontextknotens aus.

Im Folgenden ist eine Zusammenfassung einiger Abkürzungen dargestellt.

Nicht abgekürzt Abgekürzt

child::*

*

attribute::*

@*

/descendant-or-self::node()

//

self::node()

.

parent::node()

..

Dieser Abschnitt enthält Folgendes

In den folgenden Themen werden Syntax und Verwendung der Teile von Location-Paths ausführlich erläutert.