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.
Example 8-6. A simple XSLT stylesheet that uses xsl:value-of
<?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>