XSLT <xsl:choose> Element
- Vorige Pagina XSLT <if>
- Volgende Pagina XSLT apply
De XSLT <xsl:choose> element wordt gebruikt om meerdere condities te testen door <xsl:when> en <xsl:otherwise> te combineren.
<xsl:choose> element
Syntaxis
<xsl:choose> <xsl:when test="expressie"> ... Uitvoer ... </xsl:when> <xsl:otherwise> ... Uitvoer ... </xsl:otherwise> </xsl:choose>
Waarom zet je de selectievoorwaarden?
Om meerdere condities te testen in een XML-bestand, voeg je <xsl:choose>, <xsl:when> en <xsl:otherwise> toe aan het XSL-bestand:
<?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> <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> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Deze code voegt een roze achtergrondkleur toe aan de "Artist" kolom wanneer de prijs van de CD hoger is dan 10.
Deze conversie resultaat ziet er ongeveer zo uit:

Bekijk dit XML-bestand,Bekijk dit XSL-bestand,Resultaten Bekijken.
Een ander voorbeeld
Dit is een ander voorbeeld dat twee <xsl:when> elementen bevat:
<?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> <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> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:when test="price > 9"> <td bgcolor="#cccccc"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Deze code voegt een roze achtergrondkleur toe aan de "Artist" kolom wanneer de prijs van de CD hoger is dan 10, en een grijs achtergrondkleur toe wanneer de prijs van de CD hoger is dan 9 en lager of gelijk is aan 10.
Deze conversie resultaat ziet er ongeveer zo uit:

Bekijk dit XML-bestand,Bekijk dit XSL-bestand,Resultaten Bekijken.
- Vorige Pagina XSLT <if>
- Volgende Pagina XSLT apply