WebReference.com - Excerpt from Inside XSLT, Chapter 2, Part 4 (1/4)
Accessing Node Values
You can access the value of a node with the
This element has two possible attributes:
select(mandatory). The value that will be output. Set to an expression.
disable-output-escaping(optional). Indicates that characters such as ">" should be sent to the output as is, without being changed to ">". Set to "yes" or "no".
<xsl:value-of> element is always empty.
You can use the
select attribute to indicate which node you want to get the
value. For example, you might want to get the value of the
<NAME> node in each
<PLANET> element, which is the text enclosed in that node. You can do that
Listing 2.4: Using
<?xml version="1.0"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <xsl:apply-templates/> </HTML> </xsl:template> <xsl:template match="PLANETS"> <xsl:apply-templates/> </xsl:template> <xsl:template match="PLANET"> <P> <xsl:value-of select="NAME"/> </P> </xsl:template> </xsl:stylesheet>
The value of a node that contains text is just that text, so here is the result of applying this stylesheet to planets.xml:
<HTML> <P>Mercury</P> <P>Venus</P> <P>Earth</P> </HTML>
Chapter 3 goes into more detail on the disable-output-escaping attribute of the
Suppose that you want to do something a little more advanced, such as
transforming the data in planets.xml into an HTML table in the new file planets.html,
as you saw in Chapter 1, and which you can see in Figure 2.1. You can do that now
It's important to consider one issue here. There is no formal restriction on
the order of the
<DISTANCE> elements in planets.xml, but it's important that these
elements be processed in a particular order to match the headings of the table. For that
reason, I will use the
<xsl:value-of> elements in the order that the HTML
table needs them.
Created: October 4, 2001
Revised: October 4, 2001