XSLT - Transformatie
Voorbeeldstudie: Hoe zet ik XML om in XHTML met XSLT?
De details van dit voorbeeld worden in het volgende hoofdstuk uitgelegd.
Verklaring van het juiste typeblad
Het root-element dat aangeeft dat het document een XSL-stylesheet is, is <xsl:stylesheet> of <xsl:transform>.
Opmerking: <xsl:stylesheet> en <xsl:transform> zijn volledig synoniem en kunnen beide worden gebruikt!
De juiste manier om een XSL-stylesheet te declareren volgens de W3C XSLT-aanbeveling is:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
of:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Om toegang te krijgen tot de XSLT-elementen, attributen en features moeten we de XSLT-naamruimte bovenaan het document declareren.
De xmlns:xsl="http://www.w3.org/1999/XSL/Transform" verwijst naar de officiële W3C XSLT-naamruimte. Als u deze naamruimte gebruikt, moet u ook het kenmerk version="1.0" opnemen.
Begin met een Raw XML-document
We willen het volgende XML-document ("cdcatalog.xml") omzetten in XHTML :
<?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>
XML-bestanden bekijken in IE, Chrome, Firefox, Safari en Opera: Open het XML-bestand (klik op de onderstaande link) - Het XML-document wordt weergegeven met kleurgecodeerde hoofd- en onderliggende elementen (behalve in Safari). Vaak staat er een plusteken (+) of minteken (-) links van de elementen waarop kan worden geklikt om de elementstructuur uit te vouwen of samen te vouwen. Tip: Om de onbewerkte XML-bron te bekijken, klikt u met de rechtermuisknop in het XML-bestand en selecteert u "Bron weergeven"!
Een XSL-stijlblad maken
Vervolgens maakt u een XSL Style Sheet ("cdcatalog.xsl") met een transformatiesjabloon:
<?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>
Koppel het XSL-stijlblad aan het XML-document
Voeg de XSL-stijlbladverwijzing toe aan uw XML-document ("cdcatalog.xml"):
<?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>
Als u een XSLT-compatibele browser heeft, zal deze uw XML mooi omzetten in XHTML.
De details van het bovenstaande voorbeeld worden in de volgende hoofdstukken uitgelegd.