XSLT <xsl:variable>
XSLT <xsl:variable>
The <xsl:variable>
element is used to declare a local or global variable.
The variable is global if it's declared as a top-level element, and local if it's declared within a template.
Once you have set a variable's value, you can't change or modify that value!
You can add a value to a variable by the content of the <xsl:variable>
element or by the select attribute!
Syntax
<xsl:variable
name="name"
select="expression">
<!-- Content:template -->
</xsl:variable>
Attributes
Attribute | Value | Required/Optional | Description |
---|---|---|---|
name | name | Required | Specifies the name of the variable |
select | expression | Optional | Defines the value of the variable |
Example
Let's see some examples:
Example 1
If the select attribute is present, the <xsl:variable>
element cannot contain any content. If the select attribute contains a literal string, the string must be within quotes. The following two examples assign the value "blue" to the variable "color":
<xsl:variable name="color" select="'blue'" />
<xsl:variable name="color" select="'blue'" />
Note the use of "
and '
together.
Example 2
If the <xsl:variable>
element only contains a name attribute, and there is no content, then the value of the variable is an empty string:
<xsl:variable name="myvariable" />
Example 3
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="header">
<tr bgcolor="#6565d5">
<th>Title</th>
<th>Author</th>
</tr>
</xsl:variable>
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:copy-of select="$header" />
<xsl:for-each select="bookstore/book">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="author"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>