parser un document xml sous firefox
bonsoir,
dans le cadre de monpetit programme de diaporama basé sur la lecture d'un fichier xml; et après avoir obtenu votre aide pour les instructions pour parser, je suis conforté à un nouveau problème. Sous ie mon programme fonctionne bien par contre impossible de le faire fonctionner sous firefox?
Ma première analyse liée à l'introduction de l'affichage "alert()" du nombre de item de premier niveau via l'instruction documentElement.childNodes.length indique 5 enfants pour ie (ce qui est correct) et 11 élément pour firefox
Pourquoi ?
De plus lorsque je désire récupérer l'adresse de la photo à afficher ie le fait correctement alors que firefox me signale:
Erreur : Document.documentElement.childNodes is not a function
Fichier source : file:///G:/Sites%20Web/StudioLocationUnAndUn/diaporama/diaporama1.js
Ligne : 63
Je ne trouve pas mon erreur qui peut m'aider ?
ci joint les différents fichiers
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| ---------// JavaScript Document
var Delai =5;
var Document = null;
var CompteurTransition=0;
function Diaporama()
{
if (window.ActiveXObject) {
xmlTemp=new ActiveXObject("Msxml2.DOMDocument");
} else if (window.XMLHttpRequest) {
xmlTemp=document.implementation.createDocument("", "", null);
}
xmlTemp = getXMLbyRequest("diaporama.xml", "Msxml2.DOMDocument");
function getXMLbyRequest(cXPathString, activeXType) {
if (window.ActiveXObject) {
var tmpXMLDoc = new ActiveXObject(activeXType);
tmpXMLDoc.async = false;
tmpXMLDoc.load(cXPathString);
return tmpXMLDoc;
}
else if (window.XMLHttpRequest) {
var objXMLHTTP = new XMLHttpRequest();
objXMLHTTP.open("GET", cXPathString, false);
objXMLHTTP.send(null);
return objXMLHTTP.responseXML;
}
}
Document=xmlTemp;
Delai=Delai*1000;
var NbDiapo =Document.documentElement.childNodes.length;
alert(NbDiapo);
var CompteurDiapo=0;
//initialise l'image de 'écran
var e =document.getElementById("Ecran");
var z=document.createElement("img");
z.setAttribute("id","ImageDiapo");
z.setAttribute("src","Photos/p0.jpg");
e= document.getElementById("Ecran")
e.appendChild(z);
Afficher(CompteurDiapo,NbDiapo);
}
function Afficher(CompteurDiapo,NbDiapo)
{
CompteurDiapo=CompteurDiapo+1;
var e=document.getElementById("ImageDiapo");
var Adresse=Document.documentElement.childNodes(CompteurDiapo).childNodes(0).firstChild.nodeValue;
e.setAttribute("width",Document.documentElement.childNodes(CompteurDiapo).childNodes(2).text);
e.setAttribute("height",Document.documentElement.childNodes(CompteurDiapo).childNodes(3).text);
e.setAttribute("src",Adresse);
if (CompteurDiapo>=NbDiapo-1)
{
CompteurDiapo=0;
}
var TimerDiapo=window.setTimeout("Afficher("+CompteurDiapo +","+NbDiapo+")",Delai);
} |
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<?xml version="1.0" encoding="windows-1250"?>
<diaporama>
<photo>
<adresse>Photos/p0.jpg</adresse>
<texte>hh</texte>
<largeur>450 </largeur>
<hauteur>338</hauteur>
</photo>
<photo>
<adresse>Photos/p1.jpg</adresse>
<texte>gg</texte>
<largeur>800 </largeur>
<hauteur>533</hauteur>
</photo>
<photo>
<adresse>Photos/p2.jpg</adresse>
<texte>Photos/p0.jpg</texte>
<largeur>400 </largeur>
<hauteur>599</hauteur>
</photo>
<photo>
<adresse>Photos/p3.jpg</adresse>
<texte>oo</texte>
<largeur>532 </largeur>
<hauteur>800</hauteur>
</photo>
<photo>
<adresse>Photos/p4.jpg</adresse>
<texte>pp</texte>
<largeur>800</largeur>
<hauteur>532</hauteur>
</photo>
</diaporama> |