• +49-(0)721-402485-12
Ihre Experten für XML, XQuery und XML-Datenbanken

Knoten

Die Bestandteile einer XML-Baumstruktur werden Knoten genannt. Mithilfe von XPath können alle Knoten eines XML-Dokumentes selektiert und anschließend mit XSL bearbeitet werden. Grundsätzlich unterscheidet man in XPath zwischen sieben verschiedenen Knotentypen:

  • Wurzelknoten (root node): Der Wurzelknoten ist nicht mit dem Wurzelelement gleichzusetzen. In jedem XML-Dokument kommen beide genau einmal vor, wobei der Wurzelknoten als virtueller Elternknoten (parent node) des Wurzelelementes angesehen werden kann.
  • Elementknoten (element node)
  • Attributknoten (attribute node)
  • Textknoten (text node)
  • Namensraumknoten (namespace node)
  • Verarbeitungsanweisungsknoten (processing instruction node)
  • Kommentarknoten (comment node)

Achsen

Um innerhalb der Dokumentstruktur in eine beliebige Richtung navigieren zu können, existieren in XPath Achsen. Elf der insgesamt dreizehn unterschiedlichen Achsen erlauben die Navigation durch alle Elementknoten eines XML-Baumes, sie werden mit Verwandtschaftsverhältnissen bezeichnet. Die Attribut- und Namespace-Achsen steuern hingegen nur bestimmte Knotentypen (Attribut- und Namensraumknoten eines Elementes) an.

Den Ausgangspunkt jeder Suche in XML-Dokumenten bezeichnet man als Kontextknoten (context node). In den folgenden Abbildungen, welche die ersten elf der in XPath verfügbaren Achsen graphisch darstellen, wird dieser SELF genannt.

Die Self-Achse
Die Self-Achse enthält den Kontextknoten selbst.

Die Child-Achse
Die Child-Achse enthält die unmittelbaren Nachkommen des Kontextknotens.

Die Descendant-Achse
Mit der Descendant-Achse werden alle Nachkommen des Kontextknotens angesprochen.

Die Descendant-or-self-Achse
Die Descendant-or-self-Achse enthält alle Nachkommen des Kontextknotens und den Kontextknoten selbst.

Die Parent-Achse
Mit der Parent-Achse wird das Elternelement des Kontextknotens angesprochen.

Die Ancestor-Achse
Die Ancestor-Achse enthält alle Vorfahren des Kontextknotens.

Die Ancestor-or-self-Achse
Die Ancestor-or-self-Achse erfasst alle Vorfahren des Kontextknotens und den Kontextknoten selbst.

Die Preceding-Achse
Mit der Preceding-Achse werden alle Vorgänger des Kontextknotens ausschließlich seiner Vorfahren angesprochen.

Die Following-Achse
Die Following-Achse erfasst alle Nachfolger des Kontextknotens ausschließlich seiner Nachfahren.

Die Preceding-sibling-Achse
Die Preceding-sibling-Achse liefert alle Knoten, die das gleiche Elternelement wie der Kontextknoten haben und in der Dokumentordnung vor ihm stehen.

Die Following-sibling-Achse
Die Following-sibling-Achse liefert alle Knoten, die das gleiche Elternelement wie der Kontextknoten haben und in der Dokumentordnung nach ihm folgen.

Nicht nur Elementknoten

Neben den bisher untersuchten Elementknoten gibt es in XML-Dateien auch andere Knotentypen. Die Adressierung dieser speziellen Knotentypen wird in den nächsten Beispielen exemplarisch gezeigt. Dabei werden alle Beispiele und XPath-Ausdrücke auf die Datei "Hochschul.xml" angewendet:

Knotentyp:Text
XPath-Ausdruck:/HOCHSCHULE/DEKAN/text()
Erklärung:Durch den Knotentest text() wird der Text
(also der Element-Wert) des adressierten Knotens ausgewählt.
Ergebnis: Meier
Knotentyp:Kommentar
XPath-Ausdruck:/HOCHSCHULE/ARCHITEKTUR/comment()
Erklärung:Der Kommentarknoten des Elements ARCHITEKTUR wird mit
dem Knotentest comment() ausgewählt.
Ergebnis:<!-- Die Zahl kann in 2013 steigen -->
Knotentyp: Alle Knotentypen außer Attribute
XPath-Ausdruck:/HOCHSCHULE/PHILOSOPHIE/node()
Erklärung:Der Knotentest node() wählt alle Knotentypen außer
Attribute aus.
Ergebnis:Auswahl der Philosophie-Knoten

 

Auch PI-Knoten (Processing-Instructions) können durch den Knotentest processing-instruction() ausgewählt werden.

<< zurückvor >>