XSL

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Met XSLT kan je een XML-bestand met gegevens op een bepaalde manier gaan weergeven, bvb. als html.

Voorbeeld[bewerken]

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"/> &#160; - 
					 &#160; <xsl:value-of select="hoeveelheid"/>
					 &#160; <xsl:value-of select="eenheid"/>
					</td>
					<td><xsl:value-of select="beschrijving"/>
					</td>
					<td><xsl:value-of select="prijs"/>
					 &#160; <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 &nbsp; - &nbsp; 1 &nbsp; bol</td>
				<td>Roomijs met chocoladesaus</td><td>2 &nbsp; EUR</td>
			</tr>
			<tr>
				<td>Ijspralines &nbsp; - &nbsp; 5 &nbsp; stuks</td>
				<td>Hazelnotenijs met chocolademantel</td>
				<td>5 &nbsp; USD</td>
			</tr>
			<tr>
				<td>Ijstaart &nbsp; - &nbsp; 500 &nbsp; gram</td>
				<td>Kerststronk van vanille- en mokka-ijs</td>
				<td>10 &nbsp; EUR</td>
			</tr>
		</table>
	</body>
	</html>

Het resultaat is dan:

Menu

Nagerechten Beschrijving Prijs
Dame blanche   -   1   bol Roomijs met chocoladesaus2   EUR
Ijspralines   -   5   stuks Hazelnotenijs met chocolademantel 5   USD
Ijstaart   -   500   gram Kerststronk van vanille- en mokka-ijs 10   EUR
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.