Re: Remplacement ce caractères

François <[email protected]> Mon, 07 Jul 2008 21:58:44 +0200
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Bonjour Stephane et  merci pour ton attention.  :-)
Une /astuce/ , un /subterfuge/,  une /bidouille/, ... ? ;-)

Le caract=E8re d'=E9chappement "\" n'est pas reconnu apparemment.
J'ai finalement "r=E9ussi" avec une /pirouette /:

<xsl:template match=3D"text()">
   <xsl:value-of select=3D"replace(translate(.,'?','=A3'),' =A3','&#160;&=
#63;')"/>
</xsl:template>

Je remplace au pr=E9alable le caract=E8re "?" par le caract=E8re "=A3"  e=
n=20
utilisant  la fonction /translate()  /et l=E0 tout rentre dans l'ordre...=
=20
si je puis dire.
Mais ce n'est pas satisfaisant pour l'esprit, surtout pour un esprit=20
anglo-Saxon9B...
En r=E9sumant, /translate()/ g=E8re "?" mais pas /replace()/ ! (heureusem=
ent=20
mes textes ne devraient pas comport=E9s le caract=E8re "=A3")

Merci encore !
Fran=E7ois.L

Stephane Bortzmeyer a =E9crit :
> On Sat, Jul 05, 2008 at 07:55:24PM +0200,
>  Fran=E7ois <[email protected]> wrote=20
>  a message of 38 lines which said:
>
>  =20
>> <xsl:template match=3D"text()">
>>     <xsl:value-of select=3D"replace(.,' ?',&#160;?)"/>
>>  </xsl:template>
>>
>> J'obtiens le message d'erreur : /The regular expression in replace()=20
>> must not be one that matches a zero-length string
>>    =20
>
> Pourquoi une astuce ? XSLT n'est pas un jeu vid=E9o :-)
>
> Blague =E0 part, je pense qu'il faut =E9crire \? et pas ?, le caract=E8=
re ?
> =E9tant un quantificateur dans les expressions rationnelles.
>
> Je n'ai pas test=E9, j'ai juste lu
> <http://www.w3.org/TR/xmlschema-2/#regexs> puisque XSLT 2 r=E9f=E9rence
> Xpath qui r=E9f=E9rence les W3C Schemas. Regardez le tableau =AB Single
> Character Escape =BB.
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de=20
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant=20
> la commande "unsubscribe" a [email protected]
> (mailto:[email protected]?Subject=3Dunsubscribe)
>
>
>  =20