Java:带有输出HTML但没有HTML实体的XSLT

时间:2014-04-03 11:14:40

标签: java html xslt entities

是否可以将XSL转换mit xsl:output方法设置为HTML但不在输出中使用HTML实体?输出应该使用数字实体或根本不使用实体(因为我不需要使用UTF-8实体)。

1 个答案:

答案 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&eacute;</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实体。

您可以尝试使用另一个默认禁用输出转义的变换器。