Bezugspunkt: Der Pfadausdruck im Kontext
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)
Hier noch einmal die genaue Reihenfolge des Geschehens:
- Mit der Aktivierung der Template-Regel match="/" betritt der Parser den Quelldokumentbaum, genauer gesagt dessen Dokumentknoten. Die Blickrichtung zeigt auf das Wurzelelement hin.
- Es wird nach einem Element <gruss> gesucht, um dessen Stringwert zu holen.
Im Detail: Der XSLT-Prozessor begibt sich, unter Aktivierung der Template-Regel match="/" gewissermaßen auf die Schwelle des Eingabedokuments, jedoch (noch) nicht ins Innere. An dieser Position bleibt er stehen. Sie bildet während der Verarbeitung der Template-Regel den Auswertungskontext.
Der Current Node dient also als Basis zur Auswertung von XPath-Ausdrücken innerhalb der Template-Regel. Von dort ausgehend wertet der Prozessor einen in der aktuellen Template-Regel stehenden Pfadausdruck aus.
Das Pattern ist in diesem Fall /, der Kontext ist also der Dokumentknoten des Quelldokuments. Mit diesem Bezug ist der XPath-Ausdruck gruss zu betrachten. Setzt man Kontext und Ausdruck gedanklich zusammen, so ergibt sich:
/ + gruss -> /gruss
Dies ähnelt äußerlich einer Dateipfadangabe. Nicht ohne Grund: XPath ist in der Tat an die Dateipfadsyntax von UNIX angelehnt. Ein führender Slash kennzeichnet dort die Wurzel des Systemverzeichnisses, hier den Dokumentknoten des XML-Dokuments. Nicht dessen Wurzelelement, dieses liegt eine Ebene weiter innen! So interpretiert bedeutet der oben stehende zusammengesetzte Ausdruck:
»Ein Element <gruss> in der ersten (obersten) Ebene des Dokumentbaums«
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT 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