Xslt Beispiele
/ HomePage / Computer / Software / Programmierung / Xslt Beispiele
XSLT-Beispiele
Beispiele wie man beliebige XML-Dokumente in besser lesbare HTML-Form verwandelt. Die Beispiele wurden für XML-Dateien entwickelt die keine Attribute in den Tags besitzen. Attribute werden ignoriert. Als Ausgabe wird HTML erzeugt.
1. Beispiel-XML als Eingabe Datei
Die folgende Xml-Date wurde beispielhaft als Eingabe verwendet. In der zweiten Zeile wird auf das XSLT-Stylesheet referenziert (in diesem Fall @textliste.xslt@]) welches die Transformation vornimmt. Befinden sich beide Dateien im gleichen Verzeichnis kann man sich die XML-Datei einfach mit dem Firefox ansehen, und man sieht anstatt der farbigen Darstellung des XML-Quelltextes die transformierte Ausgabe.
1.1 XML-Quellcode
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet type="text/xml" href="textliste.xslt" version="1.0"?>
<Buecher>
<Buch>
<Titel>Die C++ Programmiersprache</Titel>
<Verlag>Addison-Wesley</Verlag>
<Auflage>4</Auflage>
<Erscheinungsjahr>2000</Erscheinungsjahr>
<Seiten>1086</Seiten>
<Isbn>3-8272-1660-X</Isbn>
<Autoren>
<Autor>Bjarne Stroustrup</Autor>
</Autoren>
</Buch>
<Buch>
<Titel>Das Handbuch Microsoft Office SharePoint Server 2007</Titel>
<Verlag>Microsoft Press</Verlag>
<Auflage>1</Auflage>
<Erscheinungsjahr>2007</Erscheinungsjahr>
<Seiten>1168</Seiten>
<Isbn>978-3-86645-117-9</Isbn>
<Autoren>
<Autor>Bill English et al.</Autor>
</Autoren>
</Buch>
<Buch>
<Titel>Design Patterns</Titel>
<Verlag>Addison-Wesley</Verlag>
<Auflage>1</Auflage>
<Erscheinungsjahr>1995</Erscheinungsjahr>
<Seiten>394</Seiten>
<Isbn>0-2016-3361-2</Isbn>
<Autoren>
<Autor>Erich Gamma</Autor>
<Autor>Richard Helm</Autor>
<Autor>Ralph Johnson</Autor>
<Autor>John Vlissides</Autor>
</Autoren>
</Buch>
</Buecher>
2. Erzeugt lineare Text-Liste, Übergeordnete Tags sind unterstrichen
Dieses XSLT erzeugt eine einfache Text-Repräsentation der XML-Daten.
Schwächen: Sieht nur einigermassen gut aus wenn sich untergeordnete Listen (in unserem Fall die Autoren) nicht zwischen den Tags auf gleicher Ebene befinden sondern am Anfang oder Ende.
2.1 XSLT-Quellcode
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="*">
<xsl:if test="count(node()) > 1">
<br />
</xsl:if>
<xsl:value-of select="name()"/>:
<xsl:if test="count(node()) > 1">
<br />------------------------------------------------<br />
<xsl:for-each select="*">
<xsl:if test="count(node()) = 1 or count(node()) = 0">
<xsl:value-of select="name()"/>: <xsl:value-of select="."/><br />
</xsl:if>
<xsl:if test="count(node()) > 1">
<br /><xsl:value-of select="name()"/>:
<br />------------------------------------------------<br />
<xsl:apply-templates/>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="count(node()) = 1 or count(node()) = 0">
<xsl:value-of select="."/><br />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
2.2 Ausgabe
Buecher:
------------------------------------------------
Buch:
------------------------------------------------
Titel: Die C++ Programmiersprache
Verlag: Addison-Wesley
Auflage: 4
Erscheinungsjahr: 2000
Seiten: 1086
Isbn: 3-8272-1660-X
Autoren:
------------------------------------------------
Autor: Bjarne Stroustrup
Buch:
------------------------------------------------
Titel: Das Handbuch Microsoft Office SharePoint Server 2007
Verlag: Microsoft Press
Auflage: 1
Erscheinungsjahr: 2007
Seiten: 1168
Isbn: 978-3-86645-117-9
Autoren:
------------------------------------------------
Autor: Bill English et al.
Buch:
------------------------------------------------
Titel: Design Patterns
Verlag: Addison-Wesley
Auflage: 1
Erscheinungsjahr: 1995
Seiten: 394
Isbn: 0-2016-3361-2
Autoren:
------------------------------------------------
Autor: Erich Gamma
Autor: Richard Helm
Autor: Ralph Johnson
Autor: John Vlissides
3. Erzeugt HTML-Bullet-Point Liste gemäß der XML-Struktur
3.1 XSLT-Quellcode
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="*">
<ul>
<li><b><xsl:value-of select="name()"/>: </b>
<xsl:if test="count(node()) > 1">
<ul>
<xsl:for-each select="*">
<xsl:if test="count(node()) = 1 or count(node()) = 0">
<li><b><xsl:value-of select="name()"/>: </b><xsl:value-of select="."/></li>
</xsl:if>
<xsl:if test="count(node()) > 1">
<li><b><xsl:value-of select="name()"/>: </b><xsl:apply-templates/></li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:if>
<xsl:if test="count(node()) = 1 or count(node()) = 0">
<xsl:value-of select="."/>
</xsl:if>
</li>
</ul>
</xsl:template>
</xsl:stylesheet>
3.2 Ausgabe
- Buecher:
- Buch:
- Titel: Die C++ Programmiersprache
- Verlag: Addison-Wesley
- Auflage: 4
- Erscheinungsjahr: 2000
- Seiten: 1086
- Isbn: 3-8272-1660-X
- Autoren:
- Buch:
- Titel: Das Handbuch Microsoft Office SharePoint Server 2007
- Verlag: Microsoft Press
- Auflage: 1
- Erscheinungsjahr: 2007
- Seiten: 1168
- Isbn: 978-3-86645-117-9
- Autoren:
- Autor: Bill English et al.
- Buch:
- Titel: Design Patterns
- Verlag: Addison-Wesley
- Auflage: 1
- Erscheinungsjahr: 1995
- Seiten: 394
- Isbn: 0-2016-3361-2
- Autoren:
- Autor: Erich Gamma
- Autor: Richard Helm
- Autor: Ralph Johnson
- Autor: John Vlissides