Skip to content

XSLT <xsl:variable>

How to declare and use immutable variables in XSLT with the <xsl:variable> element, including syntax, attributes, and examples for setting values via select or content.

XSLT <xsl:variable>

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

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'" />

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>
Navigation