11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Ca fait longtemps que ce forum m'apporte de l'aide, mais aujourd'hui j'ai un problème qui n'est apparemment pas déjà résolu Smiley smile
"Yet another problem with Internet Explorer" Smiley langue

Pour charger un fichier XML avec IE, on utilise généralement
var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.load(...);


Mais on peut aussi utiliser
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
xhr.open('GET', ..., false);
xhr.send(null);
xml = xhr.responseXML;


Le problème est que j'utilise la seconde méthode alors que la fonction "transformNode" (qui transforme le code en utilisant XSLT) ne fonctionne qu'en utilisant la première méthode.

Pour le prouver, il n'y a qu'à faire :
alert(doc.transformNode(xml));

Peu importe la méthode utilisée pour charger "doc", ça fonctionnera ; mais pour charger "xml" il y a un problème.
Ce code fonctionnera avec la première méthode, mais pas la seconde (rien ne se passe et aucune erreur n'est déclenchée).

C'est pour ça que je voulais savoir s'il y avait un moyen de "convertir" les résultats obtenus avec la seconde comme s'ils étaient obtenus avec la première.

Merci de votre aide
Modifié par Tomaka (31 May 2008 - 18:32)
une piste (sans garanti) :
xml = xhr.responseXML.documentElement;
pour bien envoyer un node à transformNode()