Erster Einsatz von XSLT-Instruktionen

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Das Stylesheet wird jetzt so erweitert, dass es auch auf die (spärlichen) Informationen zugreift, die das Quelldokument enthält. Im vorliegenden Fall handelt es sich um eine Zeichenkette, die ebenfalls ins Ergebnisdokument kopiert werden soll. Um das Style­sheet dazu zu veranlassen, muss es gegenüber dem vorigen Beispiel ein wenig ausgebaut werden.

Für das zu erzeugende HTML-Dokument (vorläufig bleibt es bei HTML als Ergebnisformat) wird folgende Form angestrebt:

<html>
  <head>
    <title>Ergebnisdokument</title>
  </head>
  <body>
    <h1>Die erste XSLT-Transformation</h1>
    <p>Das ist ein Testinhalt aus 'dummy.xml'.</p>
  </body>
</html>

Das Ergebnis wird also einen <p>-Container mit dem Text enthalten, der im Quelldokument im Element <wurzelelement> steht. Ein Stylesheet, das dieses Ergebnis erzeugt, könnte beispielsweise so aussehen:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>Ergebnisdokument</title>   
      </head>
      <body>
        <h1 align="center">Die zweite XSLT-Transformation</h1>
        <p align="center"><xsl:value-of select="wurzelelement"/></p>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Im Inneren des <p>-Containers erscheint jetzt (im Quelltext grau hinterlegt) eine neue XSLT-Instruktion. Diese stellt einen Befehl dar, der das bisher statische Stylesheet »aktiv« werden lässt und gleichzeitig erstmals das Quelldokument in die Verarbeitung einbezieht: <xsl:value-of select="wurzelelement" /> extrahiert den gewünschten Inhalt aus dem XML-Dokument und fügt ihn ins Ergebnisdokument ein.

xsl:value-of holt sich die Information aus dem XML-Dokument

Abbildung: xsl:value-of holt sich die Information aus dem XML-Dokument.

Neben xsl:value-of befinden sich im Stylesheet noch zwei weitere XSLT-Elemente: xsl:stylesheet, das Wurzelelement des Stylesheet-Doku­ments (der XML-Prolog spielt in diesem Zusammenhang keine Rolle), und xsl:template, welches eine Hierarchieebene weiter innen steht und in dessen Inneren sich die Literal Result Elements befinden.

Auch an dieser Stelle ein kleiner vorläufiger Lehrsatz: Im Inneren der Templa­te-Elemente eines XSLT-Stylesheets ist es erlaubt zu mischen: Literal Result Elements, die unverändert kopiert werden (wie hier die HTML-Elemente), und XSLT-Instruktionen dürfen nebeneinander vorkommen.

Wenn Sie das Beispiel in Kernow nachvollziehen, müssten Sie ein Ergebnis wie in der folgenden Abbildung gezeigt vor sich sehen. Quelldokument und Stylesheet sind über Durchsuchen-Dialoge einfach zur Verarbeitung ausgewählt worden. Anschließend wird über den Button Run die Transformation eigeleitet und das Ergebnisdokument im Ausgabefenster gezeigt. (Die aus dem Quelldokument stammenden Inhalte wurden für die Abbildung hellgrau hinterlegt.)

Die zweite Transformation in Kernow

Abbildung: Die zweite Transformation in Kernow.

Selbst für dieses einfache Beispiel wären bereits andere, gleichwertige Lösungen denkbar, da auch XSLT (wie jede Programmiersprache) für ein Problem unterschiedliche Ansätze ermöglicht.

   

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