XSLT - Transformation
Beispielstudie: Wie wandelt man XML mit XSLT in XHTML um?
Die Details dieses Beispiels werden im nächsten Kapitel erläutert.
Richtige Stylesheet-Deklaration
Das Wurzelelement, das das Dokument als XSL-Stylesheet deklariert, ist <xsl:stylesheet> oder <xsl:transform>.
Hinweis: <xsl:stylesheet> und <xsl:transform> sind vollständig synonym und können beide verwendet werden!
Der korrekte Weg, ein XSL-Stylesheet gemäß der XSLT-Empfehlung des W3C zu deklarieren, ist:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
oder:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Um Zugriff auf die XSLT-Elemente, -Attribute und -Funktionen zu erhalten, müssen wir den XSLT-Namespace oben im Dokument deklarieren.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" verweist auf den offiziellen XSLT-Namespace des W3C. Wenn Sie diesen Namensraum verwenden, müssen Sie auch das Attribut version="1.0" angeben.
Beginnen Sie mit einem Roh-XML-Dokument
Wir wollen das folgende XML-Dokument ("cdcatalog.xml") in XHTML umwandeln :
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Anzeigen von XML-Dateien in IE, Chrome, Firefox, Safari und Opera: Öffnen Sie die XML-Datei (klicken Sie auf den Link unten) – Das XML-Dokument wird mit farbcodierten Stamm- und untergeordneten Elementen angezeigt (außer in Safari). Häufig befindet sich links neben den Elementen ein Plus- (+) oder Minuszeichen (-), auf das Sie klicken können, um die Elementstruktur zu erweitern oder zu reduzieren. Tipp: Um die Roh-XML-Quelle anzuzeigen, klicken Sie mit der rechten Maustaste in die XML-Datei und wählen Sie "Quelle anzeigen"!
Erstellen Sie ein XSL-Stylesheet
Dann erstellen Sie ein XSL-Stylesheet ("cdcatalog.xsl") mit einer Transformationsvorlage:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Verknüpfen Sie das XSL-Stylesheet mit dem XML-Dokument
Fügen Sie Ihrem XML-Dokument ("cdcatalog.xml") die XSL-Stylesheet-Referenz hinzu:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Wenn Sie einen XSLT-kompatiblen Browser haben, wird dieser Ihr XML auf angenehme Weise in XHTML umwandeln .
Sehen Sie sich das Ergebnis an
Die Details des obigen Beispiels werden in den nächsten Kapiteln erläutert.