Compartilhar via


xsl:if Element

Windows Mobile SupportedWindows Embedded CE Supported

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>

See Also

Reference

XSLT Elements

Concepts

Conditional Templates