xsl:if Element
9/8/2008
Permite que fragmentos modelo condicional simples.
Syntax
<xsl:if
test = boolean expression>
</xsl:if>
Atributos
- testar
Necessário. A condição em dados de origem para testar. Se for avaliada como VERDADEIRO quando a expressão neste atributo CAST para um Boolean, o conteúdo de < if > são colocados na saída. Conjuntos de nós são CAST para um Boolean True se eles contiverem at least um nó.
Elemento informações
Número de ocorrências |
Ilimitado |
Elementos pai |
xsl: attribute, xsl:Comment, xsl:Copy, xsl:element, xsl: for-each, xsl:otherwise, xsl:param, xsl:Processing-instrução, xsl: template, xsl:variable, xsl: when, xsl: com-param, saída elementos |
Elementos filho |
xsl:apply-modelos, xsl: attribute, Call-modelo, xsl:choose, xsl:Comment, xsl:Copy, xsl:copy - dos, xsl:element, xsl: for-each, xsl:Processing-instrução, xsl:text, xsl:value - dos, xsl:variable, saída elementos |
Remarks
O de conteúdo é um modelo. A expressão é avaliada e o objeto resultante é convertido para um Boolean. Se o resultado for True, o de conteúdo modelo é instanciado; caso contrário, nada é criado.
Exemplos
No seguinte exemplo, os nomes em um GRUPO de nomes são formatado como uma lista Comma-Separated.
<xsl:template match="namelist/name">
<xsl:apply-templates/>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:template>
Outra maneira para fazer isso é reverter a lógica para fazer um verificar se esse nome é o primeiro. Em algumas circunstâncias isso executa melhor do que o exemplo acima desde Last() requer que todo o conjunto de nomes ser encontrado e contado, enquanto este não.
<xsl:template match="namelist/name">
<xsl:if test="position()!=1">, </xsl:if>
<xsl:apply-templates/>
</xsl:template>
O seguinte cores todas as outra linha tabela amarelo.
<xsl:template match="item">
<tr>
<xsl:if test="position() mod 2 = 0">
<xsl:attribute name="bgcolor">yellow</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</tr>
</xsl:template>
Este exemplo insere o texto "ações International" Quando o "stock" elemento tem um "internacionais" atributo.
<xsl:template match="stock">
<xsl:if test="@international">International Stock</xsl:if>
<xsl:apply-templates />
</xsl:template>