Vous devriez probablement utiliser des expressions régulières si XSLT 2.0 ou EXSLT est disponible.
Le code suivant est une solution XSLT 1.0 pure.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="some-param" select=" 'ololo' "/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="EmailBody">
<xsl:copy>
<xsl:value-of select="substring-before(., '{$Tckt_Cd$}')"/>
<xsl:value-of select="$some-param"/>
<xsl:value-of select="substring-after(., '{$Tckt_Cd$}')"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Utilisé avec un valide entrée XML:
<root>
<EmailBody> <lt;p<gt;Ticket {$Tckt_Cd$}<lt;/p<gt </EmailBody>
</root>
produit ce résultat:
<root>
<EmailBody> <lt;p<gt;Ticket ololo<lt;/p<gt </EmailBody>
</root>
La réponse simple est oui. Mais les réponses peuvent devenir complexes si le paramètre contient des valeurs pour plus d'un repère et si les repères peuvent être plusieurs fois dans un nœud de texte. –