Bonjour,

Pour un petit script de sondage, je génère les résultats en XML, sous la forme suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE SONDAGE [
	<!ELEMENT SONDAGE (QUESTION, REPONSES)>
	<!ELEMENT QUESTION (#PCDATA)>
	<!ELEMENT REPONSES (CHOIX+)>
	<!ELEMENT CHOIX (#PCDATA)>
 
	<!ATTLIST SONDAGE id_sondage CDATA #REQUIRED>
	<!ATTLIST SONDAGE nb_rep CDATA #REQUIRED>
	<!ATTLIST CHOIX id_choix CDATA #REQUIRED>
	<!ATTLIST CHOIX nb_votes CDATA #REQUIRED>
	]>
	<SONDAGE id_sondage="1" nb_rep="0">
		<QUESTION>
			Aimez vous les yogourts ?
		</QUESTION>
		<REPONSES>
			<CHOIX id_choix="0"
				nb_votes="0">
				oui
			</CHOIX>
			<CHOIX id_choix="1"
				nb_votes="26">
				non
			</CHOIX>
			<CHOIX id_choix="2"
				nb_votes="8">
				Vote blanc
			</CHOIX>
		</REPONSES>
	</SONDAGE>
Ensuite quand quelqun vote, on cré un objet xmlhttprequest, on envoie le vote, puis on récupère le fichier xml, qu'ensuite on va utiliser pour afficher les résultats.

Sous Firefox ça marche impec', sous opera ça plante pour une raison obscure, mais pour l'instant je me concentre sur IE.

J'ai cru comprendre que IE a du mal à récupérer une responseXML, j'ai donc fait ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
	if (isIE == 0)
	{
		var res = xhr.responseXML; // assigner le fichier XML a une variable
	}
	else
	{
		var res = new ActiveXObject("Microsoft.XMLDOM");
					res.async="false";
		res.load(xhr.responseText);
	}
Et IE reconnait enfin "res" comme quelque chose d'autre que "null".

Seulement, si je fais :
alert(res.getElementsByTagName("SONDAGE"));

ça m'affiche "[object]" mais quand je fais :
alert(res.getElementsByTagName("SONDAGE")[0]);
ça m'affiche "null".
Pourtant ce n'est pas censé être "null" (il n'y a qu'à voir le fichier XML) vu que sous Firefox il récupère sans problème le noeud sondage.

Maintenant je pense avoir cerné à peu près le problème mais je ne vois absolument pas comment le résoudre.
J'espère que quelqun saura résoudre mon problème

Cordialement,

iLUV