From: Cyril Jandia (cjandia@logfi.fr)
Date: 29/10/2002 - 10:01
Bonjour,
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Massart Nicolas
> Envoyé : vendredi 25 octobre 2002 16:29
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] MSXML : comment empécher la conversion des entités ?
>
>
> Bonjour,
> Je suis désolé, je fais un mail un peu long, mais je me dis qu'il vaut
> mieux que vous ayez tous les éléments pour comprendre mon probleme, ça
> ira plus vite.
> [...]Tout fonctionne bien sauf, comme d'ahbitude, les caractères spéciaux.
> Je récupère donc les informations suivantes dans ma base de donnée :
>
> ID_Q_ET_R QUESTION REPONSE
> TITRE
> --------- -------------------------- ------------------------------
> ---------------------
> 57 comment ca va ? tres bien merci. essais
> 63 éssai de question éessai de réponse A
> propos de mon texte
> [...]je récupère ces infos via une requette SQL qui les stock dans un tableau
> de résultat (RecordSet)
> [...]le fichier "modelxml.xml" contenant :
> <?xml version="1.0" encoding="iso-8859-1" ?>
> <root/>
>
> puis je peuple mon xml avec les infos récupérées de la base :
> [...]ceci me génère alors le XML suivant :
> [...]Ma question est donc la suivante : Comment empécher MSXML de
> transformer*é* en *&#233;* ?
En réponse à votre 1ère question :
Votre approche est plutôt bonne je pense (i.e, le fait de préciser l'encodage
dans l'ilot de données XML de départ, et "d'échapper" les car. spéciaux en
entités dans la BDD) cependant, je vous suggère de la modifier assez légèrement
:
tt simplement, en créant votre propre "format d'échappement" dans la BDD pour
ces entités numériques (par exemple "#$233$#"), puis de les "convertir" en
"é" au moment du "remplissage" des noeuds textes par votre code JScript...
D'ailleurs, puisque vous êtes en JScript, les expressions régulières de ce
dernier vous seront bien utile pour ce genre de manip. sur les chaînes de
caractères; cf. :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/j
s56jsobjregexp.asp
> En effet, ensuite j'utitilise une feuille XSL pour mettre en forme mon
> contenu et celui ci affiche "*é*" au lieu de "*é*" sur ma page HTML...
>
> Question subsidiaire : pourquoi, alors que dans mon fichier
> "modelxml.xml" j'ai la définition suivante :
> <?xml version="1.0" encoding="iso-8859-1" ?>
> me génère t'il du XML avec une définition :
> <?xml version="1.0"?>
En réponse à votre question subsidiaire :
Ne vous inquiétez pas... il s'agit en fait d'une sorte de "tromperie" de la
propriété "xml" de l'objet DOMDocument : en effet, lorsque vous écrivez du code
(qq soit le langage utilisé JScript, VBScript, C#, etc) pour lire cette
propriété et afficher sa valeur (et je crois, ou plutôt je devine, que c'est ce
que vous faites?), ce dernier ne prends pas la peine de nous informer de
l'encodage utilisé ; la raison? probablement technique/historique car cette
propriété "xml" retourne une chaîne Unicode depuis la version MSXML2 ; du reste,
c'est documenté chez M$ - cf. :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xml_
pro_sz_9ooc.asp
(Lire leur paragraphe "Remarks")
> ??? tant de question me trottent dans la tête...merci de m'aider.
Il n'y en avait pas tant que ça : seulement deux, non ? ;=)
> Merci, à bientôt.
Cordialement,
--CJ
--
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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|