Conversion des caractères spéciaux en code HTML

Questions ne rentrant pas dans les rubriques ci-dessus.

Modérateur : Groupe des modérateurs

Franck Giolat
Messages : 5
Enregistré le : 19 Sep 2006, 08:18

Conversion des caractères spéciaux en code HTML

Messagepar Franck Giolat » 19 Sep 2006, 08:52

Bonjour,

j'utilise le package XML pour exporter différents résultats mais je me suis aperçu que mes fichiers n'étaient pas valides dans certains cas, les cas oú j'écris des caractères accentués ou des caractères spéciaux tels que "<".

Ceci est normal car tout comme dans un fichier HTML, le texte contenu dans un fichier XML doit être convertit en code HTML (par exemple ">" devient "&gt;").

Existe-t'il des fonctions de conversion de chaines de caractères en code HTML?

Merci beaucoup.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 19 Sep 2006, 12:55

Voir le package R2HTML. Exemple: création d'un répertoire temporaire et écriture séquentielle dans un fichier appelé "sample":

Code : Tout sélectionner

library(R2HTML)
dir.create(file.path(tempdir(),"R2HTML"))
target <- HTMLInitFile(file.path(tempdir(), "R2HTML"), filename = "sample")
HTML("0 <= âge < 1 an; taux de mortalité à 1 an = 12%", file = target)
HTML("Échelle, El niño, français, @risk", file = target)
HTMLEndFile()


Renaud

Franck Giolat
Messages : 5
Enregistré le : 19 Sep 2006, 08:18

Messagepar Franck Giolat » 19 Sep 2006, 14:00

Je viens d'essayer ce bout de code et voici ce que l'on obtient en éditant le fichier sample.html produit:

Code : Tout sélectionner

<p class='character'>0 <= âge < 1 an; taux de mortalité à 1 an = 12%</p><p class='character'>Échelle, El niño, français, @risk</p>


Tous les caractères spéciaux sont restés tels quels... :(

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 19 Sep 2006, 14:09

Euh oui ! C'est justement le but recherché, ou alors je n'ai pas compris votre question.

Renaud

Franck Giolat
Messages : 5
Enregistré le : 19 Sep 2006, 08:18

Messagepar Franck Giolat » 19 Sep 2006, 14:15

Code : Tout sélectionner

0 <= âge < 1 an; taux de mortalité à 1 an = 12%


en code HTML s'écrit :

Code : Tout sélectionner

0 &lt;= âge &lt; 1 an; taux de mortalité à 1 an = 12%


Si celà ne pose pas de problème pour un navigateur, ce n'est pas la même chose dans un fichier XML. En effet il faut absolument que le signe "<" soit remplacé par "&lt;" car sinon il est interprété comme l'ouverture d'une balise.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 19 Sep 2006, 15:46

OK, je vois le pb. Je n'ai pas connaissance de package / fonction ad hoc. Selon la complexité des opérations que vous envisagez, R dispose de fonctions pour gérer / transformer des chaînes de caractères. Voir par exemple ?regexpr.

Renaud

Franck Giolat
Messages : 5
Enregistré le : 19 Sep 2006, 08:18

Messagepar Franck Giolat » 19 Sep 2006, 15:52

En effet je n'avais pas pensé aux expressions régulières, il faut dire que j'avais espérer qu'une telle fonction aurait déjà été développée car je trouve quand même bizarre que le package XML qui permet de créer des fichiers XML ne s'assure pas que le fichier créé est valide... :?

Merci pour votre aide en tout cas.

Franck Giolat
Messages : 5
Enregistré le : 19 Sep 2006, 08:18

Messagepar Franck Giolat » 19 Sep 2006, 16:08

J'ai une solution au cas oú cela intéresse des gens, il suffit de placer le code suspicieux dans la balise CDATA dans la balise xml.

Code : Tout sélectionner

<balise>
    <![CDATA[ 0 <= âge < 1 an; taux de mortalité à 1 an = 12% ]]>
</balise>


Et celà fonctionne car le code contenu dans CDATA est ignoré par le parser. :D

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 19 Sep 2006, 16:19

Merci !

Renaud


Retourner vers « Archives : Autres »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité