Elemento <xsl:variable> de XSLT
Definición y uso
El elemento <xsl:variable> se utiliza para declarar variables locales o globales.
Comentario:Si se declara como elemento superior, la variable es global, mientras que si se declara dentro de un patrón, la variable es local.
Comentario:¡Una vez que ha configurado el valor de la variable, no puede cambiar o modificar ese valor!
Consejo:¡Puede agregar valores a las variables a través del contenido del elemento <xsl:variable> o a través de la propiedad select!
Sintaxis
<xsl:variable name="name" select="expression"> <!-- Contenido:template --> </xsl:variable>
Atributo
Atributo | Valor | Descripción |
---|---|---|
name | name | Obligatorio. Define el nombre de la variable. |
select | expression | Opcional. Define el valor de la variable. |
Ejemplo
Ejemplo 1
Si se ha configurado la propiedad select, el elemento <xsl:variable> no puede contener ningún contenido. Si la propiedad select contiene una cadena de texto, debe agregar comillas a la cadena.
Los siguientes dos ejemplos asignan el valor "rojo" a la variable "color":
<xsl:variable name="color" select="'rojo'" />
<xsl:variable name="color" select='"rojo"' />
Ejemplo 2
Si el elemento <xsl:variable> solo contiene la propiedad name y no tiene contenido, el valor de la variable es una cadena vacía:
<xsl:variable name="j" />
Ejemplo 3
El siguiente ejemplo asigna el contenido del elemento <xsl:variable> al valor de la variable "encabezado":
<?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="encabezado"> <tr> <th>Elemento</th> <th>Descripción</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>