Der Pfadausdruck – relativ und absolut

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers)

Zwar lautet der XPath-Ausdruck hier nur gruss, er besitzt jedoch die gleiche Gesamtbedeutung wie der »zusammengesetzte« Ausdruck /gruss, da er im Hinblick auf den Kontext / betrachtet werden muss: Es handelt sich bei gruss also um einen relativen Ausdruck.

Da die Wirkung eines relativen Ausdrucks einer Verkettung mit seinem aktuel­len Kontext gleichkommt, ist diese verschieden, je nachdem, wie der Auswer­tungskontext lautet, auf den er sich bezieht: Relative Pfadausdrücke sind stets kontextbezogen.

Wo es relative Ausdrücke gibt, da gibt es auch absolute. Im Grunde haben Sie, ohne es zu wissen, bereits einen gesehen: /gruss ist ein solcher absoluter Ausdruck. Absolute Ausdrücke beginnen stets mit einem Slash »/«. Sie bringen stets das gleiche Ergebnis, ungeachtet des aktuellen Kontextes: Absolute Pfad­ausdrücke sind dokumentbezogen.

Bei Lichte betrachtet, wird es jetzt klar, warum die Instruktion im zweiten Fall kein Ergebnis bringen konnte: Ihr ist nicht der korrekte Pfad übergeben wor­den. Der Weg zum Text in <gruss> führt vom Dokumentknoten über das Ele­ment <hallo>. Den Gesamtausdruck müsste man sich daher folgendermaßen denken:

/hallo/gruss

Da der Dokumentknoten bereits Kontext ist, genügt für xsl:value-of der relative Ausdruck hallo/gruss:

<xsl:value-of select="hallo/gruss"/>

Übrigens kann stets auch ein absoluter Ausdruck verwendet werden. In diesem Fall würde daher

<xsl:value-of select="/hallo/gruss"/>

genauso gut funktionieren.

In der Praxis wird man eher den relativen Ausdruck verwenden – eben, um sich nicht ständig um die (möglicherweise wechselnde) absolute Position der gesuchten Information kümmern zu müssen.

   

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