Bonjour à tous.
Je souhaiterais commencer par m'excuser, vu la fréquence des posts à propos de la lecture d'XML en JS.

Malgré toutes mes recherches sur le sujet, je n'ai rien trouvé de satisfaisant (soit trop simple pour mon cas, soit trop avancé).
J'expose donc mon problème : je dispose d'un fichier "donnees.xml" de ce type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<root>
  <branche1>
    <ss-branche1>
      <tag1>toto</tag1>
      <tag2>tata</tag2>
    </ss-branche1>
    ...(même forme que ss-branche1)
  </branche1>
  <branche2>
  ...(même forme que branche1)
  </branche2>
</root>
Mon objectif est de récupérer les données contenues dans tous les tag1 et tag2 pour les insérer en tant qu'option d'un select

Pour l'instant, j'en suis à ce point qui ne fonctionne pas du tout :
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
 
var docXml;
function loadXML(){
	// Routine de vérification si le navigateur gêre la méthode utilisée
	if (document.implementation && document.implementation.createDocument) {
	    // déclaration pour Mozilla et FF
	    docXml = document.implementation.createDocument('', '', null);
	}
	else if (window.ActiveXObject){
	    // déclaration pour IE
	    docXml = new ActiveXObject("Microsoft.XMLDOM");
	}
	else{ alert('Votre navigateur ne saurait pas éxécuter ce script.'); }
	docXml.load("avantages.xml");
}
window.onload = function(){ loadXML(); createSelectAv();}
 
function createSelectAv(){
	var noeud = docXml.getElementsByTagName('avantage');
	for(var i=0;i < noeud.length; i++){
		var nom = noeud[i].getElementsByTagName('nom').firstChild.value;
		var cout = noeud[i].getElementsByTagName('cout').firstChild.value;
                document.getElementById('selectAv').add(nom+' (Cout : '+cout+')', null);
        }
	document.getElementById('avantages').appendChild(select);
				//générer un select contenant les nom des avantages et affichant le coût une fois selectionné
				//type <select><option>nom (Cout : X)</option></select>
}
Auriez-vous une idée pour me dépanner (quitte à modifier tout ça pour avoir le comportement voulu, autant que ça fonctionne )?