value-of

Start

XML

Namespace

XSL

DTD

Schema

Standardisierung

IMS LD

EML

LMML

Akronyme

Quellen

 

 

XSL: Templates ] XSLT ] XSL-FO ] XPath ]   Bsp.: [ XML-Buchliste ] [ value-of ] [ for-each ] [ apply-templates ] [ XPath ]

Ausgabe einer HTML Datei ( value-of)

Mit Hilfe von XSLT-Templates kann die Ausgabe von XML Dateien gesteuert werden.

Das einzige template (siehe unten) ersetzt das gesamt Dokument durch ein HTML Grundgerüst. Die XPATH Angabe /, die dem Attribut match zugewiesen wird, steht für das gesamte Dokument und nicht für das Dokumentelement (Wurzelement, root-Element). Ein Kind-Element des / ist das Wurzelelement (root element = document element).

In das HTML Grundgerüst werden die verschiedenen Textinhalte der XML Elemente eingebunden. value-of fügt den Textinhalt des mit select ausgewählten Elementes, sowie aller untergeordnenten Element ein. Obwohl das Element autor selbst keinen Text sondern nur untergeordnete Element beinhaltet, werden die Textinhalte aller Unterelemente mit Hilfe von value-of angezeigt. Ein separates Formatieren der einzelnen Unterelemente mit HMTL Tags ist allerdings an dieser Stelle nicht mehr möglich.
Select bezieht sich auf das aktuelle Element, das z. B. über match oder ein anderes übergeordnetes select (siehe buchliste_for_each.xsl) angesprochen wird.

buchliste stellt das root-Element dar. Statt "buchliste/buch/titel" kann auch "/buchliste/buch/titel" als absolute Pfadangabe angegeben werden. Anstelle von <br/> kann auch <br></br> gesetzt werden.

Das XSLT-Element output (z. B. <xsl:output method="html" version="1.0" encoding="iso-8859-1" indent="yes"/> ) muss nicht angegeben werden. Ist das Attribut true, wird die Ausgabe eingerückt dargestellt. Soll eine separate output-Datei generiert werden (serialisation), könnte ein XSLT Prozessor dieses Element auslesen. Mögliche Werte sind xml, html, text oder ein anderer Wert (qualified name). Wird im Beispiel unten xml angegeben und die XML-Datei im Browser aufgerufen, wird <br></br> als ein doppelter Zeilenumbruch zwischen den einzelnen Elementen angezeigt. Bei einer Angabe von html oder keiner Angabe des XSLT-Elementes Output wird nur ein einfacher Zeilenumbruch im Browser angezeigt. Ersetzt man das Start und Ende-Element br durch <br/> erscheint in der Browser-Ausgabe wieder ein einfacher Zeilenumbruch. Generiert man eine output Datei spielt diese Unterscheidung keine Rolle.

Quelltext der XSLT Datei:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
   <html>
   <head>
   <title>Hurra</title>
   </head>
   <body>
   <h1>Buchliste</h1>
   <b>Titel: </b><xsl:value-of select="buchliste/buch/titel"/>
   <br/>
   <b>Autor: </b><xsl:value-of select="buchliste/buch/autor"/>
   <br/>
   <b>Seiten: </b><xsl:value-of select="buchliste/buch/seiten"/>
   <br/>
   <b>Preis: </b><xsl:value-of select="buchliste/buch/preis"/>
   <br/><br/>
   </body>
   </html>
</xsl:template>

</xsl:stylesheet>

Als Ergebnis wird nur das erste Element der XML Datei buchliste_little.xml angezeigt. Will man alle Bücher aus unserer Beispieldatei haben, kann man die XSLT-Elemente for-each oder apply-templates einsetzen.

Buchliste

Titel: Uli Stein´s Tierleben
Autor: Uli Stein
Seiten: 45
Preis: 9,2 Euro

Beispieldateien:
buchliste_nur_value_of.xml
buchliste_nur_value_of.xsl