Bonjour,
Je suis désolé, je fais un post 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.
Donc j'utilise ASP (Jscript) avec Microsoft XML Core Services (MSXML) 4.0 pour générer du xml à partir d'informations récupérées dans une base de donnée SQL Server 2000.
Tout fonctionne bien sauf, comme d'habitude, 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
(2 ligne(s) affectée(s))
|
je récupère ces infos via une requette SQL qui les stock dans un tableau de résultat (RecordSet)
sqlquery = "SELECT Q.ID_Q_ET_R,Q.QUESTION,Q.REPONSE,T.TITRE FROM Q_ET_R Q,THEME T WHERE T.ID_THEME = Q.ID_THEME";
rs = objConn.Execute(sqlquery);
|
ensuite je crée un objet XML avec :
objXML = new ActiveXObject("Msxml2.DOMDocument.4.0" );
objXML.async = false;
objXML.validateOnParse = true;
objXML.resolveExternals = true;
objXML.load(mapFilePath(modelxml.xml));
objRoot = objXML.documentElement;
|
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 :
if(!rs.EOF)
{
rs.MoveFirst();
//crée le noeud xml
faqlistroot = objXML.createElement("faqlist" );
objRoot.appendChild(faqlistroot); while (!rs.EOF)
{
onode = objXML.createElement("faq" );
faqlistroot.appendChild(onode);
onode.setAttribute("id_q_et_r", String(rs.Fields("ID_Q_ET_R" )));
onode.setAttribute("titre_theme", String(rs.Fields("TITRE" )));
child = objXML.createElement("question" );
MyText = objXML.createTextNode(rs.Fields("QUESTION" ));
child.appendChild(MyText);
onode.appendChild(child);
child = objXML.createElement("reponse" );
MyText = objXML.createTextNode(rs.Fields("REPONSE" ));
child.appendChild(MyText); onode.appendChild(child); rs.MoveNext();
}
}
|
ceci me génère alors le XML suivant :
<?xml version="1.0"?>
<root>
<faqlist>
<faq id_q_et_r="57" titre_theme="essais">
<question>comment ca va ?</question>
<reponse>tres bien merci.</reponse>
</faq>
<faq id_q_et_r="63" titre_theme="A propos de WebMods">
<question>éssai de question</question>
<reponse>éessai de réponse</reponse>
</faq>
</faqlist>
</root>
|
Ma question est donc la suivante : Comment empécher MSXML de transformer é en é ?
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 :
??? tant de question me trottent dans la tête...merci de m'aider.
Merci, à bientôt.
Message édité par nima le 28-10-2002 à 10:41:18