O'Reilly logo

Building Oracle XML Applications by Steve Muench

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. XSLT Beyond the Basics

In this chapter, I delve into some of the most common kinds of transformations you will want to do on datagrams. In the process, we’ll explore several XSLT features and techniques you can use to perform these transformations.

Using XSLT Variables

This section explains how to use XSLT variables and how to steer clear of some common traps that first-time XSLT developers run into when trying to use them.

What Are XSLT Variables?

XSLT variables allow you to assign a meaningful name to the value of an XPath expression or result tree fragment and to refer to that value by name later. The value assigned to a variable can be any of the four basic XPath data types (string, number, boolean, and node-set) or a literal tree of XML nodes.

Defining a variable is easy. You just use:

<xsl:variable name="varname" select="XPathExpression"/>

to assign the value of the XPathExpression to the variable named varname, or the alternative syntax:

<xsl:variable name="varname">
  <some>
    <nodes val="xx">
      <here/>
    </nodes>
  </some>
</xsl:variable>

If you use the latter syntax, and if the tree of nodes you include between <xsl:variable> and </xsl:variable> is a single text node like this:

<xsl:variable name="varname">Some Value</xsl:variable>

then this is equivalent to setting the variable to a string value containing the value of that text node.

Tip

A common mistake developers make when assigning a string value to a variable is to use:

<xsl:variable name="var" select="MyString"/>

This is not ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required