XSL
Uit Wikibooks
Met XSLT kan je een XML-bestand met gegevens op een bepaalde manier gaan weergeven, bvb. als html.
[bewerken] Voorbeeld
Onderstaande 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="http://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 |