Elemento <xsl:choose> de XSLT
Definición y uso
El elemento <xsl:choose> en conjunto con los elementos <xsl:when> y <xsl:otherwise> permite expresar pruebas de condiciones múltiples.
Si none de los <xsl:when> es verdadero, se procesará el contenido del <xsl:otherwise>.
Si none de los <xsl:when> es verdadero y no existe el elemento <xsl:otherwise>, no se creará ningún contenido.
Consejo:Para pruebas de condiciones simples, utilice el elemento <xsl:if> en su lugar.
Sintaxis
<xsl:choose> <!-- Contenido:(xsl:when+,xsl:otherwise?) --> </xsl:choose>
Atributo
Ninguno
Ejemplo
Ejemplo 1
La siguiente código se ejecutará cuando el precio del CD sea mayor de 10, agregando un fondo rosa al campo artist:
<?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>
Ver archivo XML, ver archivo XSL, ver el resultado.
Ejemplo 2
Declarar una variable llamada "color". Asignar el valor de esta variable al atributo color del elemento actual. Si el elemento actual no tiene atributo color, el valor de color es "green":
<xsl:variable name="color"> <xsl:choose> <xsl:when test="@color"> <xsl:value-of select="@color"/> </xsl:when> <xsl:otherwise>green</xsl:otherwise> </xsl:choose> </xsl:variable>