2017-04-27 33 views
1

は、私はこのようなサンプルXMLを持って、XSLT - 特殊文字変換

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

、私は

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

、私はテンプレート以下の書いた処理命令ABCの値を取得する必要があります。しかし、それは値を返します。 &amp;#x2013;として

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

&#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

です