XSLT - 特殊字符转换

时间:2017-04-27 10:49:01

标签: xml xslt xslt-2.0

我有这样的样本xml,

<doc>
    <node>Test</node>
    <?ABC Text &#x2013; <italic>Text</italic> more text?>
</doc>

我需要获取处理指令ABC的值,所以我写了以下模板,

<xsl:template match="processing-instruction('ABC')[contains(.,'italic>')]">
        <xsl:value-of select="."/>
    </xsl:template>

但它返回值,

Text &amp;#x2013; &lt;italic&gt;Text&lt;/italic&gt; more text

&#x2013;显示为&amp;#x2013; ..我怎样才能避免这种情况发生?

我的预期输出:Text &#x2013; <italic>Text</italic> more text

1 个答案:

答案 0 :(得分:2)

一种方法,如果处理器支持并序列化结果,则为

<xsl:template match="processing-instruction('ABC')[contains(.,'italic>')]">
        <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:template>

http://xsltransform.net/naZXpWH