Using an HTML entity in XSLT (e.g. )
What is the best way to include an html entity in XSLT?
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
this one returns a XsltParseError
You can use CDATA section
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
or you can describe   in local DTD:
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
or just use  
instead of
It is also possible to extend the approach from 2nd part of aku's answer and get all known character references available, like this:
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text> −30°</xsl:text>
There is certain difference in the result as compared to <xsl:text disable-output-escaping="yes">
approach. The latter one is going to produce string literals like
for all kinds of output, even for <xsl:output method="text">
, and this may happen to be different from what you might wish... On the contrary, getting entities defined for XSLT template via <!DOCTYPE ... <!ENTITY ...
will always produce output consistent with your xsl:output
settings.
It may be wise then to use a local entity resolver to keep the XSLT engine from fetching character entity definitions from the Internet. JAXP or explicit Xalan-J users may need a patch for Xalan-J to use the resolver correctly. See my blog XSLT, entities, Java, Xalan... for patch download and comments.
one other possibility to use html entities from within xslt is the following one:
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
this one returns a XsltParseError
Yes, and the reason for that is that
is not a predefined entity in XML or XSLT as it is in HTML.
You could just use the unicode character which
stands for:  
XSLT only handles the five basic entities by default: lt
, gt
, apos
, quot
, and amp
. All others need to be defined as @Aku mentions.