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 (XML Path Language) unterstützt die Set-Operation |.
Union-Operator (|)
Der |- oder Union-Operator gibt die Union der zwei Operanden zurück, die Knotengruppen sein müssen. Beispielsweise gibt //author | //publisher eine Knotengruppe zurück, in der alle //author-Knoten und alle //publisher-Knoten kombiniert sind. Mehrere Union-Operatoren können verkettet werden, um mehrere Knotengruppen zu kombinieren. Beispielsweise gibt //author | //publisher | //editor | //book-seller eine Knotengruppe mit allen //author, //publisher, //editor und //book-seller elements zurück. Der union-Operator behält die Dokumentreihenfolge bei und gibt keine Duplikate zurück.
Beispiele
| Ausdruck | Bezieht sich auf |
|---|---|
|
Eine Knotengruppe mit |
|
Eine Knotengruppe mit |
|
Eine Knotengruppe mit allen |
|
Die Knotengruppe mit allen |
Beispiel
Im folgenden Beispiel wird die Auswirkung des Union-Operators dargestellt.
XML-Datei (test.xml)
XSLT-Datei (test.xsl)
Im folgenden XSLT-Stylesheet werden alle <x>-Elemente ausgewählt, deren a-Attribut gleich 2 ist. Außerdem werden jene <x>-Elemente ausgewählt, die keine Attribute aufweisen.
Die Transformation führt zu folgendem Ergebnis:
Rangfolge
In der folgenden Tabelle ist die Rangfolge (von höchster zu niedrigster Priorität) zwischen booleschen Operatoren und Vergleichsoperatoren dargestellt.
| Rangfolge | Operatoren | Beschreibung |
|---|---|---|
1 |
|
Gruppieren |
2 |
|
Filter |
3 |
|
Path-Vorgänge |
4 |
|
Vergleiche |
5 |
|
Vergleiche |
6 |
|
Union |
7 |
|
Boolesches "not" |
8 |
|
Boolesches "and" |
9 |
|
Boolesches "or" |
Beispiel
Im folgenden Beispiel wird die Auswirkung der oben aufgeführten Operatorenrangfolge dargestellt.
XML-Datei (test.xml)
Basic XSLT-Datei (test.xsl)
Diese Basic XSLT-Datei wird als Anfangspunkt für die folgende Reihe von Abbildungen verwendet.
Fall 0. Testlauf
Die folgende Vorlagenregel kann dem XSLT-Stylesheet hinzugefügt werden.
Dadurch wird ein mit dem ursprünglichen Dokument identisches XML-Dokument ohne <?xml version="1.0"?>-Verarbeitungsanweisungen erstellt.
In den folgenden Fällen werden die verschiedenen Möglichkeiten zum Schreiben dieser Vorlagenregel veranschaulicht. Es geht darum, die Reihenfolge darzustellen, in der XPath-Operatoren an ein Element gebunden werden.
Fall 1: () bindet stärker als []
In der folgenden Vorlagenregel wird das erste <y>-Element in der Dokumentreihenfolge aus allen <y>-Elementen im Quelldokument ausgewählt.
Daraus ergibt sich folgendes Ergebnis:
<y>y31</y>
Fall 2: [] bindet stärker als / oder //
In der folgenden Vorlagenregel werden alle <y>-Elemente ausgewählt, die das jeweils erste Element unter den nebengeordneten Elementen darstellen.
Das Ergebnis sieht so aus:
<y>y31</y>
<y>y21</y>
<y>y11</y>
<y>y03</y>
Fall 3: and, not
In der folgenden Vorlagenregel werden alle <x>-Elemente ausgewählt, die keine untergeordneten <x>-Elemente aufweisen, die über ein übergeordnetes <x>-Element verfügen und die keine Attribute besitzen.
Das Ergebnis ist ein einzelnes <x>-Element, das unten mit den dazugehörigen untergeordneten Elementen aufgeführt ist.
<x>
<y>y31</y>
<y>y32</y>
</x>
Fall 4: or, and, not
In der folgenden Vorlagenregel wird jedes <x>-Element ausgewählt, das das untergeordnete Element eines <x>-Elements oder nicht das übergeordnete Element eines <x>-Elements darstellt und keine Attribute aufweist.
Daraus ergibt sich eine Knotengruppe mit folgenden <x>-Elementen, die unten mit den dazugehörigen untergeordneten Elementen aufgeführt sind.
Fall 5: and, or, not
In der folgenden Vorlagenregel wird jedes <x>-Element ausgewählt, das das untergeordnete Element eines <x>-Elements, jedoch kein übergeordnetes Element eines <x>-Elements darstellt oder über keine Attribute verfügt.
Daraus ergibt sich eine Knotengruppe mit folgenden <x>-Elementen, die unten mit den dazugehörigen untergeordneten Elementen aufgeführt sind.