Re: [XSLT] Déterminer si un caractère est Latin ou pas
Eric van der Vlist <[email protected]> Fri, 21 Mar 2008 15:18:42 +0100
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Organization | Dyomedea (http://dyomedea.com) |
| Message-ID | <1206109122.8155.47.camel@localhost> |
Bonjour,
Le vendredi 21 mars 2008 à 15:03 +0100, Stephane Bortzmeyer a écrit :
> 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
>
> Je ne trouve pas de fonction Xpath pour cela. Une idée ?
Avec XPath 2.0, tu pourrais utiliser une expression régulière.
Avec XPath 1.0 et un processeur qui supporte
http://exslt.org/regexp/index.html, c'est possible, mais il faudra que
tu définisse toi même les blocs Unicode qui t'intéresse puisque cela ne
semble pas implémenté dans les expressions régulières JavaScript que
EXSLT demande de respecter.
Avec XPath 1.0 "pur et dur", je pense que le plus simple est d'utiliser
un langage quelconque pour générer une chaîne de caractères contenant
tous les caractères qui t'intéressent, de copier cette liste dans une
variable XSLT :
<xsl:variable name="autorisés">azer....</xsl:variable>
et d'utiliser la fonction translate pour tester s'il y a d'autres
caractères : "translate(àTester, $autorisés, '')" supprimant tous les
caractères de $autorisés dans àTester le résultat est la chaîne vide si
et seulement si il n'y avait rien d'autre...
Eric
--
GPG-PGP: 2A528005
Le premier annuaire des apiculteurs 100% XML!
http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
-- Attached file included as plaintext by Ecartis --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQBH48PCDvn+ZCpSgAURAjDrAJ9dSaP1hIJVboNkAc/9MXlCMP6pFgCgkatR
gCLdxRFhNQKWJY0K8ZaySSE=
=foGb
-----END PGP SIGNATURE-----