XSL
Met XSLT kan je een XML-bestand met gegevens op een bepaalde manier gaan weergeven, bvb. als html.
Voorbeeld
bewerkenOnderstaande XML bevat onopgemaakte gegevens:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="menukaart.xsl"?>
<menukaart>
<product>
<naam>Dame blanche</naam>
<hoeveelheid>1</hoeveelheid>
<eenheid>bol</eenheid>
<beschrijving>Roomijs met chocoladesaus</beschrijving>
<prijs>2</prijs>
<munt>EUR</munt>
</product>
<product>
<naam>Ijspralines</naam>
<hoeveelheid>5</hoeveelheid>
<eenheid>stuks</eenheid>
<beschrijving>Hazelnotenijs met chocolademantel</beschrijving>
<prijs>5</prijs>
<munt>USD</munt>
</product>
<product>
<naam>Ijstaart</naam>
<hoeveelheid>500</hoeveelheid>
<eenheid>gram</eenheid>
<beschrijving>Kerststronk van vanille- en mokka-ijs</beschrijving>
<prijs>10</prijs>
<munt>EUR</munt>
</product>
</menukaart>
De koppeling van bovenstaande gegevens met onderstaande opmaakdefinitie staan in de tweede lijn van de XML. Door bepaalde elementen te selecteren op de juiste plaats in de XSL met uitdrukkingen <xsl:for-each select="menukaart/product"> ... <xsl:value-of select="hoeveelheid"/> ... </xsl:for-each>, kan je bovenstaande gegevens een HTML-opmaak geven:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="https://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
</head>
<body>
<h2>Menu</h2>
<table cellspacing="20">
<tr>
<th>Nagerechten</th>
<th>Beschrijving</th>
<th>Prijs</th>
</tr>
<xsl:for-each select="menukaart/product">
<tr>
<td><xsl:value-of select="naam"/>   -
  <xsl:value-of select="hoeveelheid"/>
  <xsl:value-of select="eenheid"/>
</td>
<td><xsl:value-of select="beschrijving"/>
</td>
<td><xsl:value-of select="prijs"/>
  <xsl:value-of select="munt"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
De XML zal in de browser omgezet worden aan de hand van de XSL tot HTML-code.
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body>
<h2>Menu</h2>
<table cellspacing="20">
<tr>
<th>Nagerechten</th>
<th>Beschrijving</th>
<th>Prijs</th>
</tr>
<tr>
<td>Dame blanche - 1 bol</td>
<td>Roomijs met chocoladesaus</td><td>2 EUR</td>
</tr>
<tr>
<td>Ijspralines - 5 stuks</td>
<td>Hazelnotenijs met chocolademantel</td>
<td>5 USD</td>
</tr>
<tr>
<td>Ijstaart - 500 gram</td>
<td>Kerststronk van vanille- en mokka-ijs</td>
<td>10 EUR</td>
</tr>
</table>
</body>
</html>
Het resultaat is dan:
Menu
Nagerechten | Beschrijving | Prijs |
---|---|---|
Dame blanche - 1 bol | Roomijs met chocoladesaus | 2 EUR |
Ijspralines - 5 stuks | Hazelnotenijs met chocolademantel | 5 USD |
Ijstaart - 500 gram | Kerststronk van vanille- en mokka-ijs | 10 EUR |