Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 09h47   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
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 =/
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h00   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Code :
objet.getAttribute('value');
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h03   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
Code :
1
2
	var nbcol= oData.getElementsByTagName("NBCOL");
	var nbcol2= nbcol.getAttribute("value");
Déjà testé, et cela ne marche pas...
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h04   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Code :
var nbcol= oData.getElementsByTagName("NBCOL")[0];
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h26   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Envoyé par Kalas22 Voir le message
Code :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 10h29   #6
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
A marche pas =(

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

Sa commence a m’énerver un tout petit peu ^^
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h32   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h35   #8
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
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
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h00   #9
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
Excusez moi ^^

oData correspond au parametre de :

Code :
1
2
3
function readData(oData){
   // lecture du retour XML...
}
J'implémente de l'AJAX dans mon appli, et readData correspond à :

Code :
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 :
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..
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h20   #10
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
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 :
1
2
	var nbcol= oData.getElementsByTagName("NBCOL");
	var nbcol2= nbcol.getAttribute("value");
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h34   #11
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Re,

As-tu essayer de le parser en int

Code :
1
2
3
4
5
var nbcol= oData.getElementsByTagName("NBCOL")[0].getAttribute("value");
alert(nbcol);
for(i=0; i<parseInt(nbcol,10);i++){
    //
}
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 11h51   #12
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
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..
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h57   #13
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
et l'alert donne quoi?
Tu peux nous montrer le code de la fonction readData?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 12h15   #14
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
Le alert donne "NaN"...ahem


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
 
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);	
		}
	}
}
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 12h19   #15
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Tu ne lits pas bien

Code :
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);
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 14h06   #16
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 61
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 : 61
Points : 10
Points : 10
ça marche nichel !!

Merci beaucoup
Kalas22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h39.


 
 
 
 
Partenaires

Hébergement Web