Visão geral das variáveis XSLT
Nos scripts XSLT, você declara variáveis usando o <xsl:variable>
elemento. O name
atributo especifica o nome da variável, que é sensível ao caso. Uma vez que você declara uma variável, você pode referenciá-la dentro de uma expressão XPath usando o nome variável prefixado com um sinal de dólar ($).
As variáveis são imutáveis; você só pode definir o valor de uma variável quando declarar a variável, após qual ponto, o valor é fixo. Você inicializa uma variável incluindo o select
atributo e uma expressão na <xsl:variable>
tag. O exemplo a seguir declara e inicializa a variável location
. A location
variável é então usada para inicializar a message
variável.
<xsl:variable name="location" select="$dot/@location"/> <xsl:variable name="message" select="concat('We are in ', $location, ' now.')"/>
Você pode definir variáveis locais e globais. As variáveis são globais se forem crianças do <xsl:stylesheet>
elemento. Caso contrário, eles são locais. O valor de uma variável global é acessível em qualquer lugar da folha de estilo. O escopo de uma variável local está limitado ao modelo ou bloco de código em que ela é definida.
As variáveis XSLT podem armazenar quaisquer valores que você possa calcular ou definir estaticamente. Isso inclui estruturas de dados, hierarquias XML e combinações de texto e parâmetros. Por exemplo, você pode atribuir a saída XML de um comando de modo operacional a uma variável e, em seguida, acessar a hierarquia dentro da variável.
O modelo a seguir declara a message
variável. A message
variável inclui valores de texto e parâmetros. O modelo gera uma mensagem de log do sistema referindo-se ao valor da variável de mensagem.
<xsl:template name="emit-syslog"> <xsl:param name="user"/> <xsl:param name="date"/> <xsl:param name="device"/> <xsl:variable name="message"> <xsl:text>Device </xsl:text> <xsl:value-of select="$device"/> <xsl:text> was changed on </xsl:text> <xsl:value-of select="$date"/> <xsl:text> by user '</xsl:text> <xsl:value-of select="$user"/> <xsl:text>.'</xsl:text> </xsl:variable> <syslog> <message> <xsl:value-of select="$message"/> </message> </syslog> </xsl:template>
A mensagem de log do sistema resultante é a seguinte:
O dispositivo device-name foi alterado date pelo usuário 'user.
A Tabela 1 fornece exemplos de declarações variáveis XSLT, juntamente com explicações pseudocódigo.
Declaração variável |
Explicação pseudocódigo |
---|---|
|
Atribui o nível de |
|
Atribui o valor do parâmetro macro a |