2017-04-27 1 views
1

Je échantillon xml comme celui-ci,XSLT - Caractère spécial transformer

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

je dois obtenir la valeur de l'instruction de traitement ABC j'ai donc écrit modèle suivant,

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

Mais il renvoie la valeur,

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

&#x2013; montre que &amp;#x2013; .. Comment puis-je éviter cela arrive?

Ma sortie prévue: Text &#x2013; <italic>Text</italic> more text

Répondre

2

Une façon, si pris en charge par le processeur et vous sérialisez le résultat, est

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

http://xsltransform.net/naZXpWH