Wie verwende ich XSLT? Ein Anwendungsbeispiel

Thomas Darimont

Erfahrenes Mitglied
Wie verwende ich XSLT ein Anwendungsbeispiel

Hallo!

Hier mal kleines Anwendungsbeispiel zum Thema XSLT:

...

Wir erstellen uns nun mal ein XML File das die Datenenthält,
welche wir später Rendern wollen (Eine Firma mit einer Angestelltenliste)

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
    Wichtig! Damit das XML Dokument auf richtig gerendert werden kann, müssen wir
    ihm hier mittels des xml-stylesheet Tags mitteilen welches Stylesheet verwendet
    werden soll. Die Datei Processor.xsl wird nun im aktuellen Verzeichnis 
    gesucht.
-->
<?xml-stylesheet type="text/xsl" href="Processor.xsl"?>
<firma name="XYZ Company">
	<angestellte>
		<angestellter name="Thomas" alter="20"/>
		<angestellter name="Richard" alter="22"/>
	</angestellte>
</firma>
Der Wurzelknoten "firma" enthält als direkten Kindknoten eine Auflistung
namens "angestellte" welche als Kinder die eigentlichen Angestelltensätze
("angestellter") enthält.

Danach entwerfen wir unser Stylesheet:
Ich verwende in diesem Beispeil u.A. XPath um im XML Dokument herum zu navigieren:
Ein XPath tutorial findet ihr unter http://www.tutorials.de/tutorials163173.html .

Code:
<!--Processor.xsl-->

<!-- Dieser Tag Kennzeichnet die von uns genutzte XML Version und die verwendete
     Zeichenkodierung                                                           -->
<?xml version="1.0" encoding="ISO-8859-1"?>

 <!-- 
     Dieser Tag sagt uns welche Version unser Stylesheet besitzt und welchen 
     Namensraum (xmlns -> XML Namespace) wir für unser XSL Schema verwenden.
  -->
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <!--
     Hier deklarieren wir mittels eines XPath Musters, den Bereich des Dokuments,
     welcher von unserem Template betroffen sein soll. 
     -> "/" -> Bedeutet ab der Wurzel alles.
 -->
   <xsl:template match="/">
      <html>
         <head>
            <title>
         <!--
            Hier ziehen wir uns den Namen der Firma mittels eines XPath-Ausdrucks
            Mit dem @-Symbol greift man in XPath auf die Attribute eines Knotens zu
            und setzen das Ergebnis als Dokumententitel. Dazu verwenden wir 
            den xsl:value-of Tag mit dem Parameter(!?) select und dem XPath Ausdruck als Parameter.
         -->
               <xsl:value-of select="firma/@name"/>
            </title>
        </head>
        <body>
         <!--
            Wie oben nur diesmal als Tabellenüberschrift.
         -->           
               <xsl:value-of select="firma/@name"/>
	       <table border="2">
         <!--
		Hier erstellen wir eine Schleife in der wir über alle Elemente
                des Typs "angestellter" der Auflistung "angestellte" iterieren.
         -->
	          <xsl:for-each select="/firma/angestellte/angestellter">
                  <tr>
            <!--
		Innerhalb dieses Blockes sind nun die Attribute des gerade
                in der Schleife Selektierten konkreten Elements "angestellter"
                verfügbar, auf die wir wie oben schon beschrieben mittels des
                @ Symbols zugreifen.
	    -->
                    <td><xsl:value-of select="@name"/></td>
                    <td><xsl:value-of select="@alter"/></td>
                  </tr>
	          </xsl:for-each>
	       </table>
        </body>
      </html>

<!--
	Hier schließen wir den Template Tag. 
-->
   </xsl:template>

<!--
	Hier schließen wir den Stylesheet Tag. 
-->
</xsl:stylesheet>

Wie lasse ich das ganze nun laufen?

Einfach die beiden Dateien in ein beliebiges Verzeichnis kopieren und die Datei
Input.xml mit einem gewöhnlichen XSLT-Fähigen Webbrowser öffnen.

Das wars mal zum Einstieg.
To be continued ...

Gruß Tom
 
Zurück