在XSLT中使用HTML实体(例如)
时间:2020-03-05 18:44:16 来源:igfitidea点击:
在XSLT中包含html实体的最佳方法是什么?
<xsl:template match="/a/node"> <xsl:value-of select="."/> <xsl:text> </xsl:text> </xsl:template>
这个返回一个XsltParseError
解决方案
回答
我们可以使用CDATA部分
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
或者我们可以在本地DTD中描述&nbsp:
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
或者只使用而不是
回答
this one returns a XsltParseError
是的,原因是``不是XML或者XSLT中的预定义实体,而是HTML中的预定义实体。
我们可以只使用代表的unicode字符:
回答
在xslt中使用html实体的另一种可能性是以下一种:
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
回答
默认情况下,XSLT仅处理五个基本实体:lt,gt,gt,quot,quot和amp。所有其他需要定义为@Aku提及。
回答
现在有了Unicode,使用命名字符实体通常会适得其反。出于这个原因,我建议将Unicode字符用于不间断空格而不是实体。或者,我们可以使用实体"&#160`;"代替命名实体。使用命名实体使XML依赖于内联或者外部DTD。