Skip to main content

XSLT <xsl:variable>

XSLT <xsl:variable>

The <xsl:variable> element is used to declare a local or global variable.

note

The variable is global if it's declared as a top-level element, and local if it's declared within a template.

note

Once you have set a variable's value, you can't change or modify that value!

note

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

AttributeValueRequired/OptionalDescription
namenameRequiredSpecifies the name of the variable
selectexpressionOptionalDefines 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

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>