<xsl:text> | |
Allows you to write literal text to the output document. | |
Category | |
Instruction |
|
Required Attributes | |
None. |
|
Optional Attributes | |
|
|
Content | |
#PCDATA, literal text, and entity references. |
|
Appears in | |
<xsl:text> appears inside a template. |
|
Defined in | |
XSLT section 7.2, Creating Text. |
|
Example | |
This sample stylesheet generates text with <xsl:text>. We intermingle <xsl:text> elements and <xsl:value-of> elements to create a coherent sentence. In this case, we simply generate a text document, but this technique works equally well to create the text of an HTML or XML element. Here is the stylesheet: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:text>Your document contains </xsl:text> <xsl:value-of select="count(//*)"/> <xsl:text> elements and </xsl:text> <xsl:value-of select="count(//@*)"/> <xsl:text> attributes. </xsl:text> <xsl:value-of select="$newline"/> <xsl:text disable-output-escaping="yes"><Have a great day!></xsl:text> </xsl:template> </xsl:stylesheet> Also notice our use of <xsl:variable> to generate line breaks. The <xsl:text> element inside the <xsl:variable> element contains a line break, so writing the value of that variable to the result tree gives us the line break we want. Given this XML document: <?xml version="1.0"?> <list xml:lang="en"> <title>Albums I've bought recently:</title> <listitem>The Sacred Art of Dub</listitem> <listitem>Only the Poor Man Feel It</listitem> <listitem>Excitable Boy</listitem> <listitem xml:lang="sw">Aki Special</listitem> <listitem xml:lang="en-gb">Combat Rock</listitem> <listitem xml:lang="zu">Talking Timbuktu</listitem> <listitem xml:lang="jz">The Birth of the Cool</listitem> </list> Our stylesheet produces these results: Your document contains 9 elements and 5 attributes. <Have a great day!> Since we use the text output method, the disable-output-escaping attribute has no effect. If you change the stylesheet to use <xsl:output method="html"/> or <xsl:output method="xml"/>, then disable-output-escaping is used. Here are the results for disable-output-escaping="yes": Your document contains 10 elements and 2 attributes. <Have a great day!> And here are the results for disable-output-escaping="no", the default: Your document contains 10 elements and 2 attributes. <Have a great day!> |