2010-07-02 33 views
0

Je dois définir un xsl:param avec une chaîne contenant le caractère & pour traitement ultérieur. Par exemple:XSLT: Définir un paramètre avec & ampersand

<xsl:param name="greeting" as="xs:string">Hi & Bye</xsl:param> 

Avis important: J'utilise un composant convertisseur xslt dans un outil de webservice. Qu'est-ce que je fais, c'est que je viens d'initialiser le param et que le webservice est appelé le param est défini à la valeur d'une variable qui a été définie dans les étapes précédentes. Donc, je n'ai aucun contrôle sur la chaîne, c'est-à-dire que je ne peux pas utiliser &amp;

Des idées comment faire cela?

Merci d'avance.

Répondre

2

Encodez-le.

& est encodée comme &amp;:

<xsl:param name="greeting" as="xs:string">Hi &amp; Bye</xsl:param> 

Voir this documents sur les entités XML de caractères.

Une autre option consiste à enfermer les chaînes dans CDATA sections:

<xsl:param name="greeting" as="xs:string"><![CDATA[Hi & Bye]]></xsl:param> 
+0

Désolé, je n'ai pas mentionné un élément important dans la question. veuillez vérifier la version éditée. Je vous remercie. – fouad

1

Vous pouvez essayer de stocker la chaîne sous forme de données de caractère (CDATA) unparsed. Marquer la chaîne dans ce cas avertira un analyseur XML que les informations contenues ne doivent pas être analysées:

<xsl:param name="greeting" as="xs:string"><![CDATA[ Hi & Bye ]]></xsl:param>