XPath-Auflistungen
In von XPath-Abfragen zurückgegebenen Auflistungen bleiben die Dokumentreihenfolge, Hierarchie und Identität soweit erhalten, wie sie definiert wurden. Das heißt, eine Auflistung von Elementen wird in Dokumentreihenfolge ohne sich wiederholende Elemente zurückgegeben. Da Attribute per Definition ungeordnet sind, gibt es keine implizite Reihenfolge für Attribute, die für ein bestimmtes Element zurückgegeben werden.
Die Auflistung aller Elemente mit einem bestimmten Tagnamen wird mithilfe des Tagnamens selbst ausgedrückt. Dabei wird veranschaulicht, dass die Elemente mithilfe eines Punkts und eines Schrägstrichs (./
) aus dem aktuellen Kontext ausgewählt werden. In der Standardeinstellung wird jedoch der aktuelle Kontext verwendet. Eine explizite Anmerkung dazu ist nicht erforderlich.
Beispiele
Ausdruck | Bezieht sich auf |
---|---|
|
Alle |
|
Alle |
Indizierung in einer Auflistung
XPath-Ausdrücke erleichtern das Abfragen eines bestimmten Knotens in einer Knotengruppe. Schließen Sie die Indexordinalzahl einfach in eckige Klammern ein. Die Ordinalzahl ist 1-basiert (das erste Element hat die Nummer 1).
Eckige Klammern ([]
) haben Vorrang gegenüber Schrägstrichen (/
und //
). Weitere Informationen finden Sie unter Operatoren und Sonderzeichen
Beispiele
Ausdruck | Verweist auf |
---|---|
|
Das erste |
|
Das dritte |
Beachten Sie, dass Indizes relativ zu der gefilterten Gruppe sind. Berücksichtigen Sie beispielsweise folgende Daten.
<x>
<y/>
<y/>
</x>
<x>
<y/>
<y/>
</x>
In der folgenden Tabelle wird veranschaulicht, wie bestimmte <x>
-Elemente und <y>
-Elemente ausgewählt werden.
Ausdruck | Verweist auf |
---|---|
|
Das erste |
|
Das erste |
|
Das erste |
Die oben aufgeführten Beispiele stellen einfache Verweise auf XPath-Auflistungen dar, in denen implizierte Standards verwendet werden, z. B. die child::
-Achse. Bei dieser Achse erfolgt die Indizierung der Auflistung untergeordneter Knoten in vorwärtsgerichteter Dokumentreihenfolge.
Für andere Achsen, z. B. ancestor::
, muss der Achsenname im XPath-Ausdruck explizit verwedent werden. Bei dieser Achse wird die Auflistung übergeordneter Elemente in umgekehrter Dokumentreihenfolge indiziert. Berücksichtigen Sie dabei das Beispiel aus der vorherigen Tabelle:
x/y[1]
Dieser Ausdruck entspricht dem folgenden:
x/child::y[1]
Beide Ausdrücke bedeuten "wählen Sie für jedes <x>
-Element das erste untergeordnete Element mit dem Namen <y>
aus**".
Im folgenden Beispiel wird dieselbe Syntax verwendet.
x/ancestor::y[1]
Dieses Beispiel bedeutet "wählen Sie für jedes <x>
-Element das erste indirekt übergeordnete Element (in umgekehrter Dokumentreihenfolge) mit dem Namen <y>
aus". Die Syntax ist dieselbe, die Reihenfolge ist jedoch umgekehrt.
Suchen des letzten Elements in einer Auflistung
Mit der last()-Funktion wird für das letzte Element in einer Auflistung True zurückgegeben. Beachten Sie, dass last
relativ zum übergeordneten Knoten ist.
Beispiele
Ausdruck | Verweist auf |
---|---|
|
Das letzte |
|
Das letzte |
|
Das letzte |
Gruppieren
Klammern können verwendet werden, um Auflistungsoperatoren aus Gründen der Übersichtlichkeit zu gruppieren. Sie können auch verwendet werden, wenn die normale Rangfolge nicht geeignet ist, um eine Operation darzustellen. Gruppierungsoperatoren können in allen Filterausdrücken (Prädikate) verwendet werden, z. B. author[(degree or award)and publication]
. Sie können auch in Step-Ausdrücken höchster Ebene verwendet werden, z. B. (book|magazine)
oder (author/degree | book/award)
. Sie können nicht auf Step-Ausdrücke niedriger Ebenen angewendet werden. Beispielsweise ist author/(degree | award)
ungültig.
Beispiele
Ausdruck | Bezieht sich auf |
---|---|
|
Alle |
|
Alle |