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: //

Die Descendant-Or-Self-Achse

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 Verei­nigungsmenge aus der »Descendant«- und der »Self«-Achse.

Ist der Kontextknoten der Dokumentknoten, so enthält die Achse den gesam­ten Dokumentbaum.

Für die »Descendant-Or-Self«-Achse existiert alternativ eine abgekürzte Schreib­weise 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 die­sem abstammenden Elementknoten aus. Ist der aktuelle Knoten der Doku­mentknoten, so werden dieser und alle Elemente des Dokuments ausge­wä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 Dokument­knoten an. Gewählt werden in diesem Fall alle Elementknoten des Doku­mentbaums 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