是否可以将XSL转换mit xsl:output方法设置为HTML但不在输出中使用HTML实体?输出应该使用数字实体或根本不使用实体(因为我不需要使用UTF-8实体)。
答案 0 :(得分:2)
您可以使用disable-output-escaping
。使用此输入:
<test>Café</test>
使用此XSL样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="test">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
将呈现:
<test>Café</test>
但是如果您将disable-output-escaping="yes"
添加到<xsl:value-of>
:
<xsl:value-of select="." disable-output-escaping="yes"/>
你得到:
<test>Café</test>
如果您使用默认情况下不会转义HTML的转换器(例如Saxon 9),您也可能会获得非转义HTML。我还相信您可以将Xalan配置为默认情况下不转义HTML实体。
您可以尝试使用另一个默认禁用输出转义的变换器。