2017-04-27 61 views
1

我有示例XML這樣,XSLT - 特殊字符變換

<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

回答

2

的一種方式,如果處理器支持和序列化的結果,是

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

http://xsltransform.net/naZXpWH