Descripción general de variables de XSLT
En las secuencias de comandos XSLT, se declaran variables mediante el <xsl:variable>
elemento. El name
atributo especifica el nombre de la variable, que distingue entre mayúsculas y minúsculas. Una vez que se declara una variable, puede hacer referencia a ella dentro de una expresión XPath mediante el nombre de variable con el prefijo de un signo de dólar ($).
Las variables son inmutables; solo se puede establecer el valor de una variable cuando se declara la variable, después de qué punto, el valor es fijo. Inicializa una variable incluyendo el select
atributo y una expresión en la <xsl:variable>
etiqueta. En el ejemplo siguiente se declara e inicializa la variable location
. A location
continuación, la variable se usa para inicializar la message
variable.
<xsl:variable name="location" select="$dot/@location"/> <xsl:variable name="message" select="concat('We are in ', $location, ' now.')"/>
Puede definir variables tanto locales como globales. Las variables son globales si son hijos del <xsl:stylesheet>
elemento. De lo contrario, son locales. Se puede acceder al valor de una variable global en cualquier lugar de la hoja de estilos. El ámbito de una variable local se limita a la plantilla o bloque de código en el que se define.
Las variables XSLT pueden almacenar cualquier valor que pueda calcular o definir estáticamente. Esto incluye estructuras de datos, jerarquías XML y combinaciones de texto y parámetros. Por ejemplo, puede asignar el resultado XML de un comando de modo operativo a una variable y, luego, acceder a la jerarquía dentro de la variable.
La siguiente plantilla declara la message
variable. La message
variable incluye valores de texto y parámetros. La plantilla genera un mensaje de registro del sistema haciendo referencia al valor de la variable de mensaje.
<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>
El mensaje de registro del sistema resultante es el siguiente:
El usuario cambió el date dispositivodevice-name.user
La Tabla 1 proporciona ejemplos de declaraciones de variables XSLT junto con explicaciones de pseudocódigo.
Declaración de variables |
Explicación del pseudocódigo |
---|---|
|
Asigna el |
|
Asigna el valor del parámetro de |