Freigeben über


Location-Steps

Ein Location-Step wählt eine Gruppe von Knoten (einen Knotensatz) relativ zum Kontextknoten aus.

Ein Location-Step besteht aus drei Teilen: einer optionalen Achse, einem Knotentest und einem optionalen Prädikat. Die Syntax für einen Location-Step besteht aus dem Achsennamen und einem zweifachen Doppelpunkt, aus dem Knotentest und abschließend 0 (null) oder mehr Prädikaten, von denen jedes in eckigen Klammern steht. Die Grundform dieser Syntax lautet folgendermaßen:

axis::nodetest[predicate]
  • axis
    Gibt die hierarchische Beziehung zwischen dem Kontextknoten und den vom Location-Step auszuwählenden Knoten an. Mit anderen Worten: Die Achse gibt die allgemeine Richtung an, in die sich der Location-Step vom Kontextknoten aus bewegt. In einem Location-Step ist die Achse optional. Bei Auslassung wird für die Achse standardmäßig child:: verwendet. Zudem stehen für zahlreiche Achsen Kurzformen zur Verfügung. Beispielsweise ist das kaufmännische Und-Zeichen (@) eine Kurzform für die Attributachse.
  • nodetest
    Gibt den Knotentyp oder den erweiterten Namen der Knoten an, die anfangs vom Location-Step ausgewählt werden sollen. Im Wesentlichen wird mit dem Knotentest angegeben, welche(r) Knoten von allen Knoten auf der angegebenen Achse als Kandidaten angesehen werden können, d. h. als potenzielle Entsprechungen für den Location-Step.
  • predicate
    Verwendet einen XPath-Ausdruck (zu erfüllende Bedingung) zur weiteren Abstimmung der vom Location-Step ausgewählten Knotengruppe. Dieses Prädikat ist ein Filter, der ein Auswahlkriterium für die weitere Abstimmung der Liste der Kandidatenknoten angibt. Das Prädikat ist optional. Wenn kein Prädikat vorhanden ist, enthält der Location-Step keine eckigen Klammern ([ und ]).

Auswählen von Knoten

Die von einem Location-Step ausgewählte Knotengruppe entsteht durch Generieren einer ersten Knotengruppe anhand der Beziehung zwischen der Achse und dem Knotentest und durch die darauf folgendes Filtern dieser ersten Knotengruppe nach jedem der Prädikate.

Die erste Knotengruppe besteht aus den Knoten, die die folgenden beiden Kriterien erfüllen:

  • Die Knoten besitzen die durch die Achse angegebene Beziehung zum Kontextknoten.

  • Die Knoten besitzen den Knotentyp und den erweiterten Namen, die vom Knotentest angegeben werden.

XPath verwendet daraufhin das erste Prädikat im Location-Step, um die erste Knotengruppe zum Generieren einer neuen Knotengruppe zu filtern. XPath verwendet dann das zweite Prädikat, um die aus dem ersten Prädikat entstehende Knotengruppe zu filtern. Dieser Filtervorgang wird wiederholt, bis alle Prädikate ausgewertet wurden. Die Knotengruppe, die nach Anwendung aller Prädikate entsteht, ist die vom Location-Step ausgewählte Knotengruppe.

ms256472.note(de-de,VS.100).gifHinweis:
Da die Achse die Auswertung des Ausdrucks in jedem Prädikat beeinflusst, wird die Semantik eines Prädikats in Bezug auf die angegebene Achse definiert.

In der folgenden Tabelle sind einige Beispiele für Location-Steps aufgeführt, bei denen die vollständige Syntax verwendet wird.

Location-Step Beschreibung

child::*[position()=1]

Sucht nach dem ersten untergeordneten Knoten des Kontextknotens.

ancestor-or-self::book[@catdate="2000-12-31"]

Sucht alle indirekt übergeordneten Elemente jedes untergeordneten <book>-Elements des Kontextknotens sowie das untergeordnete <book>-Element selbst, solange das betreffende Element über ein catdate-Attribut mit dem Wert "2000-12-31" verfügt.

//parent::node()[name()="book"] | descendant::node()[name()="author"]

Sucht alle Knoten im Dokument, deren übergeordneter Knoten "book" heißt, bzw. alle Knoten, die vom Kontextknoten "author" abstammen.

Siehe auch

Verweis

Achsen
Knotentests
Prädikate