On Fri, Mar 21, 2008 at 03:03:47PM +0100,
Stephane Bortzmeyer <stephane@sources.org> wrote
a message of 22 lines which said:
> Pour traduire du XML vers un format qui n'utilise pas Unicode,
> j'aurais besoin de tester, dans un programme XSLT :
>
> - si un caractère donné est un caractère latin
> - si un caractère donné appartient à l'ensemble qu'on trouve dans
> Latin-1
Bon, avec l'aide rapide et efficace de Stéphane Bonhomme et d'Eric van
der Vlist, voici la solution la plus proche de mon cahier des charges
originel. Elle nécessite EXSLT (car je n'ai pas trouvé d'autre moyen
de parcourir tous les caractères d'une chaîne) donc je dois laisser
tomber Sablotron.
<xsl:variable name="goodletters">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZàâèéêëîïôùûüÿÀÂÈÉÊËÎÏÔÙÛÜ;:./%' </xsl:variable>
<xsl:template match="text()">
<xsl:variable name="content">
<xsl:value-of select='.'/>
</xsl:variable>
<xsl:for-each select="str:tokenize($content, '')">
<xsl:choose>
<xsl:when test="string-length(translate(text(), $goodletters, '')) != 0">[Unicode character omitted]</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
Principal manque : j'aimerai bien afficher le point de code Unicode au
lieu d'un message générique mais je ne vois pas comment le trouver en
XSLT 1 ?
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Mar 24 16:08:36 2008