Elemento <xsl:choose> XSLT
Definição e uso
O elemento <xsl:choose> em conjunto com os elementos <xsl:when> e <xsl:otherwise> permite expressar testes de condições múltiplas.
Se o <xsl:when> não for verdadeiro, processe o conteúdo do <xsl:otherwise>.
Se nenhum <xsl:when> for verdadeiro e não houver elemento <xsl:otherwise>, nenhum conteúdo será criado.
Dica:Para testes de condição simples, use o elemento <xsl:if> em vez disso.
Sintaxe
<xsl:choose> <!-- Conteúdo:(xsl:when+,xsl:otherwise?) --> </xsl:choose>
Atributo
Nenhum
Exemplo
Exemplo 1
O seguinte código adicionará uma cor de fundo rosa à coluna artist quando o preço do CD for maior que 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>Minha Coleção de CDs</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Título</th> <th>Artista</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 o arquivo XML, ver o arquivo XSL, ver o resultado.
Exemplo 2
Declarar uma variável chamada "color" e atribuir seu valor ao atributo color do elemento current. Se o elemento current não tiver o atributo color, o valor de color será "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>