XSLT <xsl:variable>Element
Complete XSLT Element Reference
Definition and Usage
The <xsl:variable> element is used to declare local or global variables.
Note:If it is declared as a top-level element, it is a global variable. If it is declared within a template, it is a local variable.
Note:Once you set a variable's value, you cannot change or modify that value!
Tip:You can add a value to a variable through the content of the <xsl:variable> element or through the select attribute!
Syntax
name="name"
select="expression">
<!-- Content:template -->
</xsl:variable>
Attributes
| Attribute | Value | Description |
|---|---|---|
| name | name | Required. Specifies the name of the variable. |
| select | expression | Optional. Defines the value of the variable. |
Example 1
If the select attribute is set, the <xsl:variable> element cannot contain any content. If the select attribute contains a literal string, the string must be quoted. The following two examples assign the value "red" to the variable "color":
Example 2
If the <xsl:variable> element contains only the name attribute and has no content, the value of the variable is an empty string:
Example 3
The following example assigns a value to the variable "header" through the content of the <xsl:variable> element:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="header">
<tr>
<th>Element</th>
<th>Description</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>
Complete XSLT Element Reference Other Extensions