在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 "&#160;"> ]>

或者只使用而不是

回答

this one returns a XsltParseError

是的,原因是``不是XML或者XSLT中的预定义实体,而是HTML中的预定义实体。

我们可以只使用代表的unicode字符:

回答

在xslt中使用html实体的另一种可能性是以下一种:

<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>

回答

默认情况下,XSLT仅处理五个基本实体:lt,gt,gt,quot,quot和amp。所有其他需要定义为@Aku提及。

回答

现在有了Unicode,使用命名字符实体通常会适得其反。出于这个原因,我建议将Unicode字符用于不间断空格而不是实体。或者,我们可以使用实体"&#160`;"代替命名实体。使用命名实体使XML依赖于内联或者外部DTD。