54 votes

S'échapper de devis unique en xslt fonction concat

Je veux de sortie des guillemets simples autour de $variable ID dans le dessous de xsl:value-of xsl de tresorerie.

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

actuellement, il imprime

process@Ref=87799989

S'il vous plaît laissez-moi savoir comment je peux y parvenir.

Merci d'avance, Keshav

49voto

Dimitre Novatchev Points 147842

Dans XPath 1.0:

Vous pouvez utiliser les entités &apos; et &quot;

En XSLT 1.0:

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

Dans XPath 2.x (ce qui signifie aussi XSLT 2.x et XQuery 1.x)

Tout simplement échapper une apostrophe en entrant deux adjacents apostrophes, d'échapper à un devis en saisissant à deux adjacents citations, tel que défini par le langage XPath 2.0

38voto

Veloz Points 241

Pour développer sur Dimitre réponse, 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>

33voto

KennyTM Points 232647

Utiliser &apos;?

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

5voto

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

cela ne fonctionne pas pour moi. Ma solution est la suivante:

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

0voto

user3392863 Points 1

Exemple simple serait

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

Ce sera de remplacer "texte" avec " dans mon titre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X