Article View: fr.comp.text.xml
Article #10257Re: " et ' et " etc...
From: Tom.
Date: Mon, 13 Nov 2000 00:00
Date: Mon, 13 Nov 2000 00:00
49 lines
2539 bytes
2539 bytes
In article <1GVP5.2567$rL4.7899207@nnrp2.proxad.net>, "nelsounet"
<nelsounet@free.fr> wrote:
> J'ai un objet javascript qui r�cup�re une string du xsl ;
>
> object.addstring("<xsl:value-of select='....'>");
>
> Le probl�me est que dans ma string, il y a des quotes ", et donc
> l'objet croit y voir une fin de string...
Ca ne me semble pas r�alisable facilement avec les seules fonctions
XSLT.
Le probl�me est qu'il faut remplacer les " par plusieurs caract�res (\"
suffit pour JavaScript), et translate() ne le permet pas.
Solution : utiliser un template nomm� � appeler r�cursivement.
<xsl:template match="..." name="r�cursif">
<xsl:param name="courant" select="string()"/>
<xsl:choose>
<xsl:when test="contains('"', $courant)">
<xsl:value-of select="string-before($courant, '"')"/>
<xsl:text>\"</xsl:text>
<xsl:call-template name="r�cursif">
<xsl:with-param name="courant"
select="string-after($courant, '"')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$courant"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
et tu l'appelles par :
object.addstring("<xsl:apply-templates select="..."/>");
Explication :
par d�faut $courant vaut la valeur (string) du noeud "...".
Si la cha�ne contient un ", on affiche ce qui pr�c�de, on affiche \" et
on affiche ce qui suit, transform� par la m�me m�thode. On a donc bien
remplac� les " par des \".
Si la cha�ne ne contient pas de ", on l'affiche, tout simplement. Et
c'est la condition d'arr�t de la r�cursivit�.
N.B.: si tu veux avoir les caract�res " dans le r�sultat, tu dois
�crire &quot; (tu "�chappes le & en & comme on �chappe le " en
\" pour JavaScript) ou <![CDATA["]]> (ou encore <![CDATA[&]]>quot;)
Tom.
Technical Details
Message-ID:
<prbpu8.si8.ln@ptittom.free.fr>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<1GVP5.2567$rL4.7899207@nnrp2.proxad.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,2ef48d3b30040e6b X-Google-Attributes: gid114f60,public From: "Tom." <ptittom@free.fr> Subject: Re: " et ' et " etc... Date: 2000/11/13 Message-ID: <prbpu8.si8.ln@ptittom.free.fr> X-Deja-AN: 693175839 References: <1GVP5.2567$rL4.7899207@nnrp2.proxad.net> X-Complaints-To: abuse@proxad.net X-No-Productlinks: Yes X-Trace: nnrp1.proxad.net 974142850 213.228.43.107 (Mon, 13 Nov 2000 20:14:10 MET) Organization: Guest of ProXad - France User-Agent: Pan/0.9.1 (Unix) NNTP-Posting-Date: Mon, 13 Nov 2000 20:14:10 MET Newsgroups: fr.comp.text.xml