Die Instruktionen im Template-Rumpf
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)
Im Inneren des Rumpfs der Template-Regel befinden sich weitere Elemente, die durch das Präfix xsl gekennzeichnet sind. Bei ihnen handelt es sich um Anweisungen an den verarbeitenden XSLT-Prozessor: Es sind Instruktionen, die den Prozessor zu bestimmten Aktionen veranlassen. Eine solche XSLT-Instruktion kann, muss aber nicht von Literal Result Elements umgeben sein. Sie wird vom Prozessor an Ort und Stelle ausgeführt:
Code-Beispiel: kap01/1.08/beispiel.xsl.
...
<body>
<h1 align="center">Die dritte XSLT-Transformation</h1>
<p align="center"><xsl:value-of select="wurzelelement"/></p>
</body>
...
Im erzeugten Dokument ist von der XSLT-Instruktion nichts mehr zu sehen. Lediglich das Ergebnis der ausgeführten Anweisung tritt an ihre Stelle:
Code-Beispiel: kap01/1.08/beispiel.html.
...
<body>
<h1 align="center">Die dritte XSLT-Transformation</h1>
<p align="center">Das ist ein Testinhalt aus 'dummy.xml'.</p>
</body>
...
Exemplarisch: Die Instruktion xsl:value-of
Mittels der Instruktion xsl:value-of wird Text erzeugt, der im Anschluss im Ergebnisdokument erscheint.
Dieser Text ergibt sich durch die Auswertung des XPath-Ausdrucks (XPath Expression) im obligatorisch zu verwendenden select-Attribut. Das Ergebnis des Ausdrucks wird in jedem Fall in eine Zeichenkette (String) umgewandelt – man spricht daher vom Stringwert des Ausdrucks.
In diesem Beispiel adressiert der XPath-Ausdruck über den Namen ein Element im Quelldokument. Damit wird der Prozessor angewiesen, den Stringwert (value) des Elements <wurzelelement> zu extrahieren:
<xsl:value-of select="wurzelelement"/>
Man kann sich dies so vorstellen, dass der XSLT-Prozessor aktiv in das Quelldokument »greift« und sich die Information von der bezeichneten Position holt. Zum Lokalisieren des Ziels wird ein XPath-Ausdruck im select-Attribut von xsl:value-of ausgewertet.
Es erfordert vom Autor des Stylesheets Kenntnis über die Struktur des zu verarbeitende Dokuments. Damit die Wert-Extraktion wie vorgesehen funktioniert, muss bekannt sein, dass ein Element namens <wurzelelement> existiert, und wo es sich im Quelldokument befindet. Dies ist weniger trivial, als es im Augenblick erscheinen mag.
XPath-Ausdruck vs. XPath-Pattern
Als XPath-Ausdruck bzw. Expression wird im Grunde alles bezeichnet, was mit Hilfe von XPath formulierbar ist. Die »Expression« bildet also den allgemeinen Oberbegriff; das Pattern ist eine spezielle Untergruppe der Expression.
Eine Expression kann also einerseits in Form eines Pfadausdrucks dazu dienen, einen Teil des Quelldokuments zu bezeichnen. Sie kann aber auch Funktionsaufrufe der Form fn:funktionsname() beinhalten, die einen Wert zurückgeben, der dann der aufrufenden Instruktion übergeben wird. In diesem Zusammenhang kann ein XPath-Ausdruck intern auch Kontrollstrukturen wie for-Schleifen und Bedingungen mit if ... then ... else ... enthalten.
XPath-Ausdrücke werden in den folgenden Kapiteln ausführlicher thematisiert. Vorläufig soll die Betrachtung ihrer einfacheren Untergruppe genügen: der Pfadausdrücke. Vor deren eingehenderen Betrachtung ist zunächst ein weiterer Blick auf XML-Dokumente unter einem ganz anderen Aspekt sinnvoll.
<< 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