Elemento <xsl:variable> do XSLT

Definição e uso

O elemento <xsl:variable> é usado para declarar variáveis locais ou globais.

Comentário:Se declarado como elemento de nível superior, a variável é global, enquanto se declarada dentro de um modelo, a variável é local.

Comentário:Uma vez que você definiu o valor da variável, não pode ser alterado ou modificado!

Dica:Você pode adicionar valores às variáveis através do conteúdo do elemento <xsl:variable> ou através do atributo select!

Sintaxe

<xsl:variable
name="nome"
select="expressão">
  <!-- Conteúdo:template -->
</xsl:variable>

Atributo

Atributo Valor Descrição
name name Obrigatório. Define o nome da variável.
select expressão Opcional. Define o valor da variável.

Exemplo

Exemplo 1

Se o atributo select estiver definido, o elemento <xsl:variable> não pode conter nenhum conteúdo. Se o atributo select contiver uma string de texto, a string deve ser entre aspas.

Os dois exemplos a seguir atribuem o valor "red" à variável "cor":

<xsl:variable name="cor" select="'red'" />
<xsl:variable name="cor" select='"red"' />

Exemplo 2

Se o elemento <xsl:variable> contiver apenas a propriedade name e não tiver conteúdo, o valor da variável é uma string vazia:

<xsl:variable name="j" />

Exemplo 3

O exemplo a seguir atribui o conteúdo do elemento <xsl:variable> à variável "header":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="header">
  <tr>
  <th>Elemento</th>
  <th>Descrição</th>
  </tr>
</xsl:variable>
<xsl:template match="/">
  <html>
  <body>
  <table>
    <xsl:copy-of select="$header" />
    <xsl:for-each select="reference/record">
    <tr>
    <xsl:if category="XML">
      <td><xsl:value-of select="element"/></td>
      <td><xsl:value-of select="description"/></td>
    </xsl:if>
    </tr>
    </xsl:for-each>
  </table>
  <br />
  <table>
    <xsl:copy-of select="$header" />
    <xsl:for-each select="table/record">
    <tr>
    <xsl:if category="XSL">
      <td><xsl:value-of select="element"/></td>
      <td><xsl:value-of select="description"/></td>
    </xsl:if>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>