Descendant-Or-Self-Achse
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 4.)
Definiert für: XPath 1.0 und 2.0, XQuery 1.0
Richtung: vorwärts gerichtet
Achsenbezeichner: descendant-or-self
Abgekürzte Schreibweise: //
Abbildung: Die Descendant-Or-Self-Achse.
Die »Descendant-Or-Self«-Achse enthält den Kontextknoten und alle von ihm unmittelbar und mittelbar abstammenden Knoten. Sie entspricht der Vereinigungsmenge aus der »Descendant«- und der »Self«-Achse.
Ist der Kontextknoten der Dokumentknoten, so enthält die Achse den gesamten Dokumentbaum.
Für die »Descendant-Or-Self«-Achse existiert alternativ eine abgekürzte Schreibweise in Form des Doppelslashes »//«. Die abgekürzte Schreibweise kann jedoch nicht ohne einen folgenden Knotentest eingesetzt werden (im Gegensatz zum einfachen Slash).
Beispiel:
- descendant-or-self::*
wählt den aktuellen Knoten und alle von diesem abstammenden Elementknoten aus. Ist der aktuelle Knoten der Dokumentknoten, so werden dieser und alle Elemente des Dokuments ausgewählt. Ist der aktuelle Knoten kein Elementknoten, so ist die Ergebnissequenz leer.
- descendant-or-self::node()
wählt den aktuellen Knoten und alle Knoten ungeachtet ihres Typs aus, die von diesem abstammen. Nicht gewählt werden Attribut- und Namensraumknoten – weder die des aktuellen Knotens (falls dieser solche besitzt) noch diejenigen eines von ihm abstammenden Knotens. Ist der aktuelle Knoten der Dokumentknoten, so wird der gesamte Dokumentbaum ausgewählt.
- //*
Der Doppelslash als einfacher Pfadausdruck setzt am Dokumentknoten an. Gewählt werden in diesem Fall alle Elementknoten des Dokumentbaums und auch der Dokumentknoten selbst.
Achtung – abgekürzte Schreibweise für sich stehend nicht kontextsensitiv:
Diese Schreibweise ist, als Einzelschritt betrachtet, im Gegensatz zu dem im ersten Beispiel gewählten Ausdruck descendant-or-self::* nicht kontextsensitiv! Nur im Inneren von zusammengesetzten Pfadausdrücken ergibt die Verwendung des Doppelslashes als Abkürzung für die »Descendant-Or-Self«-Achse insgesamt einen kontextbezogenen (relativen) Pfadausdruck.
Steht dieser Ausdruck alleine (mit folgendem Nodestest) oder am Beginn eines zusammengesetzten Pfadausdrucks, so ist das Ergebnis grundsätzlich ein absoluter Pfadausdruck.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XPath bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn