Calculating the Value of an Element with xsl:value-of
Most of the time, the text that is output is more closely related to the text that is input than it was in the last couple of examples. Other XSLT elements can select particular content from the input document and insert it into the output document.
One of the most generally useful elements of this kind is
xsl:value-of
. This element calculates the string value of an XPath
expression and inserts it into the output. The value of an element is the text content of the element
after all the tags have been removed and entity and character
references have been resolved. The element whose value is taken is
identified by a select
attribute
containing an XPath expression.
For example, suppose you just want to extract the names of all
the people in the input document. Then you might use a stylesheet like
Example 8-6. Here the person
template outputs only the value of the name
child element of the matched person
in between <p>
and </p>
tags.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="person"> <p> <xsl:value-of select="name"/> </p> </xsl:template> </xsl:stylesheet>
When an XSLT processor applies this stylesheet to Example 8-1, it outputs this text:
<?xml version="1.0" encoding="utf-8"?> <p> Alan Turing </p> <p> Richard P Feynman </p>
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.