如何在XSLT中转义特殊字符

时间:2013-07-31 08:11:58

标签: xml xslt

我从XSLT输出以下XML

当前输出

<stem>
    <text>
        <p style="white-space: pre-wrap">
            <span style="font-size:11;">How much would it cost to buy an Apple &amp; Pear if it's a Saturday?</span>
        </p>
    </text>
</stem>

期望的输出

<stem>
    <text>
        <p style="white-space: pre-wrap">
            <span style="font-size:11;">How much would it cost to buy an Apple &amp; Pear if it&apos;s a Saturday?</span>
        </p>
    </text>
</stem>

我尝试过disable-output-escaping =“no”,但它没有效果:

我正在使用

<xsl:value-of select="." disable-output-escaping="no"/>

由于

1 个答案:

答案 0 :(得分:2)

如果您使用的是XSLT 2(正如您对Saxon的使用所示),则有一项功能 调用character maps来微调输出序列化的方式。至 将所有撇号序列化为&apos;使用:

<xsl:character-map name="escape-apos">
    <xsl:output-character character="&apos;" string="&amp;apos;"/>
</xsl:character-map>

<xsl:output method="xml" use-character-maps="escape-apos"/>