🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #10257

Re: " et ' et " etc...

#10257
From: Tom.
Date: Mon, 13 Nov 2000 00:00
49 lines
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('&quot;', $courant)">
      <xsl:value-of select="string-before($courant, '&quot;')"/>
      <xsl:text>\"</xsl:text>
      <xsl:call-template name="r�cursif">
        <xsl:with-param name="courant"
                        select="string-after($courant, '&quot;')"/>
      </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 &quot; dans le r�sultat, tu dois
�crire &amp;quot; (tu "�chappes le & en &amp; comme on �chappe le " en 
\" pour JavaScript) ou <![CDATA[&quot;]]> (ou encore <![CDATA[&]]>quot;)

Tom.
Technical Details
Message-ID: <prbpu8.si8.ln@ptittom.free.fr>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <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