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
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
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>
Pour l'instant, j'en suis à ce point qui ne fonctionne pas du tout :
Auriez-vous une idée pour me dépanner (quitte à modifier tout ça pour avoir le comportement voulu, autant que ça fonctionne
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> })?
Partager