在XSLT中包含html实体的最佳方式是什么?
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
这个函数返回一个XsltParseError
发布于 2008-08-28 09:02:13
您可以使用CDATA节
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
或者您可以在本地DTD中描述它:
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
或者直接使用 
而不是
发布于 2011-10-01 01:36:43
还可以从aku's answer的第二部分扩展该方法,并获得所有已知的字符引用,如下所示:
<!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>
与<xsl:text disable-output-escaping="yes">
方法相比,计算结果有一定的差异。后者将为所有类型的输出生成像
这样的字符串文字,甚至对于<xsl:output method="text">
,这可能会与您希望的有所不同……相反,通过<!DOCTYPE ... <!ENTITY ...
获取为XSLT模板定义的实体将始终生成与xsl:output
设置一致的输出。
因此,使用本地实体解析器阻止XSLT引擎从Internet获取字符实体定义可能是明智的。JAXP或显式Xalan-J用户可能需要一个补丁才能使Xalan-J正确使用解析器。有关补丁下载和评论,请参阅我的博客XSLT, entities, Java, Xalan...。
发布于 2008-08-28 09:10:04
在xslt中使用html实体的另一种可能性是:
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
https://stackoverflow.com/questions/31870
复制相似问题