XSL

Uit Wikibooks
Ga naar: navigatie, zoek

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"/> &#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 chocoladesaus 2   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.
Persoonlijke instellingen
Naamruimten

Varianten
Handelingen
Navigatie
zusterprojecten
Afdrukken/exporteren
Hulpmiddelen