IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Lecture de fichier XML


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut Lecture de fichier XML
    Bonjour,

    Dans mon XML j'ai une ligne comme suit :

    Et je cherche, en javascript, à stocker la valeur de "value" dans une variable, afin de boucler sur cette valeur.

    J'ai essayé quelques trucs mais je récupère un "objectNodelist" a chaque fois =/

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objet.getAttribute('value');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	var nbcol= oData.getElementsByTagName("NBCOL");
    	var nbcol2= nbcol.getAttribute("value");
    Déjà testé, et cela ne marche pas...

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nbcol= oData.getElementsByTagName("NBCOL")[0];

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Kalas22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	var nbcol= oData.getElementsByTagName("NBCOL");
    	var nbcol2= nbcol.getAttribute("value");
    Déjà testé, et cela ne marche pas...
    Ben c'est sûr que si tu demandes la valeur d'un attribut sur une collection d'éléments, ça marche moins bien

    Comme le s de getElementsByTagName l'indique, cette méthode renvoie plusieurs éléments, il faut donc boucler dessus comme l'indique Andry.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    A marche pas =(

    Je récupére un object element...

    Sa commence a m’énerver un tout petit peu ^^

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ouais, c'est sûr que si tu nous donnais tout ton code plutôt que des fragments dont on ne sait pas à quoi ils correspondent, ça aiderait probablement à trouver une solution...

    Par exemple, oData, c'est quoi au juste ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ben c'est sûr que si tu demandes la valeur d'un attribut sur une collection d'éléments, ça marche moins bien

    Comme le s de getElementsByTagName l'indique, cette méthode renvoie plusieurs éléments, il faut donc boucler dessus comme l'indique Andry.
    +1 ^^

    Sinon ça revient à demander le prénom de ta famille

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    Excusez moi ^^

    oData correspond au parametre de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function readData(oData){
       // lecture du retour XML...
    }
    J'implémente de l'AJAX dans mon appli, et readData correspond à :

    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
    function request(oSelect) {
     
    	var value = oSelect.options[oSelect.selectedIndex].value;
    	var xhr   = getXMLHttpRequest();
     
    	xhr.onreadystatechange = function() {
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
     
    			readData(xhr.responseXML);
    			document.getElementById("loader").style.display = "none";
     
    		} else if (xhr.readyState < 4) {
    			document.getElementById("loader").style.display = "inline";
    		}
    	}
     
    	xhr.open("POST", "AJAX_getproj.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send("MoisAnnee=" + value);
    }

    Le fichier XML retourné etant :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <list>
     <LOT name="LOT_TEST_1" id="1">
       <activite name="Activité_test01"/>
       <activite name="Activité_test11"/>
       <activite name="Activité_test12"/>
       <activite name="Activité_test13"/>
       <activite name="Activité_test14"/>
       <activite name="Activité_test15"/>
       <activite name="Activité_test16"/>
       <activite name="Activité_test17"/>
       <activite name="Activité_test18"/>
       <activite name="Activité_test19"/>
       <activite name="Activité_test20"/>
       <activite name="Activité_test21"/>
       <activite name="Activité_test22"/>
       <activite name="Activité_test23"/>
       <activite name="Activité_test24"/>
     </LOT>
     <LOT name="LOT_TEST_4" id="4">
       <activite name="Activité_test31"/>
       <activite name="Activité_test32"/>
       <activite name="Activité_test33"/>
       <activite name="Activité_test34"/>
       <activite name="Activité_test35"/>
     </LOT>
     <LOT name="LOT_TEST_5" id="5">
       <activite name="Activité_test36"/>
       <activite name="Activité_test37"/>
       <activite name="Activité_test38"/>
       <activite name="Activité_test39"/>
       <activite name="Activité_test40"/>
     </LOT>
     <NBCOL value="38"/>
     <JOURS>
       <jour id="1" name="Mardi 01"/>
       <jour id="2" name="Mercredi 02"/>
       <jour id="3" name="Jeudi 03"/>
       <jour id="4" name="Vendredi 04"/>
       <jour id="5" name="Samedi 05"/>
        ...etc.
     </JOURS>
    </list>
    Et dans mon code XML j'ai une ligne :

    Dont j'essaye désespérément de récupérer la valeur de "value" pour pouvoir boucler dessus..

  10. #10
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    On y est presque, il ne manque plus que la partie de code où tu fais le parcours de ton XML, celle qui englobe ça :

    Citation Envoyé par Kalas22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	var nbcol= oData.getElementsByTagName("NBCOL");
    	var nbcol2= nbcol.getAttribute("value");

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,

    As-tu essayer de le parser en int

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var nbcol= oData.getElementsByTagName("NBCOL")[0].getAttribute("value");
    alert(nbcol);
    for(i=0; i<parseInt(nbcol,10);i++){
        //
    }

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    Re,

    Ouaip, et sa ne rentre même pas dans la boucle. Je ne comprend vraiment pas..

    Je ne pense pas que le code qui englobe ça soit utile a mon problème, si?

    Je pense avoir donner tout ce qu'il fallait ^^

    J'ai juste besoin de pouvoir récupérer le value de mon XML..

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    et l'alert donne quoi?
    Tu peux nous montrer le code de la fonction readData?

    A+.

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    Le alert donne "NaN"...ahem


    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
    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
     
    function readData(oData) {
    	//Suppression des lignes
    	var tabl= document.getElementById("tableau");
    	var nbLignes= document.getElementById("tableau").rows.length;
    	var nbcol = get_nbcol();
    	for(i=1;i<=nbcol;i++){
    		$('.colonne'+i).remove();
    	}
    	$('th.vertical').remove();
    	for(i=0;i<nbLignes;i++){
    		$('.jour'+i).remove();
    	}
     
    	// création de la nouvelle ligne
     
    	var nodes_jour = oData.getElementsByTagName("jour"); 
    	// var nbcol= oData.getElementsByTagName("NBCOL");
    	// var nbcol2= nbcol.getAttribute("value");
    	var nbcol= oData.getElementsByTagName("NBCOL")[0];
    	var bouga = parseInt(nbcol);
    	alert(bouga);
    	// alert("FDMLKFPOERD");
    	for(i=0;i<nodes_jour.length;i++){
    		var row = document.createElement("tr");
    		var entete_jour = document.createElement("td");
    		entete_jour.setAttribute("class","jour"+i);
    		entete_jour.setAttribute("id","jour");
    		var jour = document.createTextNode(nodes_jour[i].getAttribute("name"));
    		entete_jour.appendChild(jour);
    		row.appendChild(entete_jour);
    		for(j=0;j<parseInt(nbcol);j++){
    			var cell = document.createElement("td");
    			cell.setAttribute("class","colonne"+j);
    			row.appendChild(cell);
    		}
    		tabl.appendChild(row);
    	}
    	// création de la nouvelle colonne
    	var nodes_lot   = oData.getElementsByTagName("LOT");
    	var row_entete = document.getElementById("row_entete");
     
    	for(i=0;i<nodes_lot.length;i++){					
    		var textcol = document.createTextNode(nodes_lot[i].getAttribute("name"));
    		var col = document.createElement("th");
    		col.setAttribute("class","vertical");
    		col.style.backgroundColor="#046380";
    		var divcol= document.createElement("div");
    		divcol.setAttribute("class","vertical");
    		divcol.appendChild(textcol);
    		col.appendChild(divcol);
    		row_entete.appendChild(col);
     
    		var nodes_activite= nodes_lot[i].getElementsByTagName("activite");
    		for(j=0;j<nodes_activite.length;j++){
    			var textcol2 = document.createTextNode(nodes_activite[j].getAttribute("name"));
    			var col2 = document.createElement("th");
    			col2.setAttribute("class","vertical");
    			var divcol2= document.createElement("div");
    			divcol2.setAttribute("class","vertical");
    			divcol2.appendChild(textcol2);
    			col2.appendChild(divcol2);
    			row_entete.appendChild(col2);	
    		}
    	}
    }

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Tu ne lits pas bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var nbcol= oData.getElementsByTagName("NBCOL")[0].getAttribute("value");// regarde ici
    	var bouga = parseInt(nbcol,10); // ici aussi, si tu ne veux pas qu'il compte à base 8
    	alert(bouga);

  16. #16
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    ça marche nichel !!

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XPATH] problème lecture dans fichier XML
    Par DiamonDonald dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/02/2008, 09h57
  2. Lecture de fichier XML généré avec SOAP
    Par Erkcy dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 09/01/2008, 22h22
  3. lecture de fichier xml
    Par cyreel dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/12/2006, 16h06
  4. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  5. VA lors de lecture du fichier XML
    Par LN(a) dans le forum Langage
    Réponses: 6
    Dernier message: 14/09/2005, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo