Elemento <xsl:choose> de XSLT
Definición y uso
El elemento <xsl:choose> en combinación con los elementos <xsl:when> y <xsl:otherwise> permite expresar pruebas de condiciones múltiples.
Si <xsl:when> no es verdadero, se procesa el contenido de <xsl:otherwise>.
Si none de los <xsl:when> es verdadero y no existe el elemento <xsl:otherwise>, no se crea 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
El siguiente código añade un fondo rosa al campo artist cuando el precio del CD es mayor de 10:
<?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>Mi colección de CDs</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 el archivo XML, ver el archivo XSL, ver los resultados.
Ejemplo 2
Se declara 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>verde</xsl:otherwise> </xsl:choose> </xsl:variable>