Échapper un devis unique dans la fonction concat de xslt

Je souhaite publier une seule citation autour de la variable $ ID dans la classe xsl suivante : valeur-de- xsl.

<xsl:value-of select="concat('process[@Ref=',$ID,']')"></xsl:value-of> 

Actuellement imprimé

 process@Ref=87799989 

Permettez-moi de savoir comment puis-je réaliser cela.

Merci d'avance, Keshav

Utilisez &apos; ?

 <xsl:value-of select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of> 

Edit: Voir la réponse de Dimitre pour une meilleure solution.

Dans XPath 1.0 :

Vous pouvez utiliser les entités intégrées &apos; &quot;

Dans XSLT 1.0 :

Alternativement, vous pouvez définir vos variables $Q et $APOS (mettre le contenu (le caractère littéral "ou le caractère littéral") dans le corps de la xsl:variable pas dans l'attribut select ).

Dans XPath 2.x (cela signifie également XSLT 2.x et XQuery 1.x)

Il suffit d'échapper à une apostrophe en entrant deux apostrophes adjacentes, échapper à une citation en entrant deux guillemets adjacents, tels que définis par la langue XPath 2.0

Pour développer la réponse de Dimitre, vous pouvez utiliser cette solution dans XSLT:

 <xsl:variable name="apos">'</xsl:variable> <xsl:value-of select="concat('process[@Ref=',$apos,$ID,$apos,']')"></xsl:value-of> 
 <xsl:value-of select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of> 

Cela ne fonctionne pas pour moi. Ma solution est:

 <xsl:value-of select="concat(&quot;process[@Ref='&quot;,$oidConstant,&quot;'&quot;)"></xsl:value-of> 

Un exemple facile serait

  <xsl:variable name="varTitle" select="title" /> <xsl:variable name="APOS">'</xsl:variable> <xsl:value-of select="translate($varTitle, 'any text', $APOS)"/> 

Cela remplacera "n'importe quel texte" par "dans mon titre".