cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 2011
-
18 nov. 2008 à 12:12
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
18 nov. 2008 à 17:40
Bonjour.
j'ai un fichier xml contenant une liste d'élements que je voudrais récupérer dans ma page html. seulement lorsque je lance mon appli je récupère seulement le dernier élément. quelqu'un pourrait-il m'aider !! j'ajoute mon code afin d'etre mieux compris.
var liste_userlabel = new Array();
//*********************
// utilisation d'un fichier XML
var xmlDoc;
var moz = (typeof document.implementation != "undefined") && (typeof document.implementation.createDocument != "undefined");
var ie = (typeof window.ActiveXObject != "undefined");
function LoadXML(xmlFile){
if (moz) {
xmlDoc = document.implementation.createDocument("", "doc", null);
xmlDoc.load(xmlFile);
}
else if (ie) {
// Créer une instance d'un objet XML.
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
// Vérifier qu'elle est traitée entièrement avant de poursuivre avec le code.
//Enforce download of XML file first. IE only.
xmlDoc.async=false;
while(xmlDoc.readyState != 4) {};
xmlDoc.load(xmlFile);
}
if (typeof xmlDoc!="undefined"){
if (window.ActiveXObject){ //if IE, execute script
ProcessXML();
}
else{ //else if NS6 of mozilla, execute script when XML object has loaded
xmlDoc.onload = ProcessXML;
}
}
}
function ProcessXML() {
// récupération du contenu des noeuds pour reconstituer la variable
var xmlFile = xmlDoc.getElementsByTagName("userLabel");
var nb_userlabel = xmlFile.length;
for ( i=0; i < nb_userlabel; i++ ) {
var collection_child = xmlFile[i].childNodes;
var nb_child = collection_child.length;
var userLabel;
for (j=0 ; j < nb_child; j++) {
var noeud = collection_child[j];
if( noeud.nodeType == 1 ) {
var name = noeud.nodeName;
switch (name)
{
case "userLabel":
userLabel= noeud.firstChild.nodeValue;
break;
default:
break;
}
}
}
liste_userlabel[i] = new Array(userLabel);
}
}
LoadXML("C:\\userLabel\\Sub_Segment.xml");
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 18 nov. 2008 à 14:10
bonjour,
je ne comprend pas ce que tu cherches à faire avec : liste_userlabel[i] = new Array(userLabel);
ça contient un nombre ?
mais en fait, je ne comprend d'ailleurs pas le but global....
peut-être car on n'a pas un extrait du xml ?
pourquoi ne le faire qu'une fois par getElementsByTagName("userLabel") ?
>>e récupère seulement le dernier élément.
lequel d'élement ? getElementsByTagName("userLabel") ou pour la variable userlabel ?
c'est d'ailleurs ambigüe ces noms...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 18 nov. 2008 à 15:04
restons sur le forum si tu veux bien....
1° ça peut intéresser d'autres personnes,
2° mais surtout, pour toi, il y a d'autres intervenants !
donc plus de compétences et de chances de réponses....
<hr size="2" width="100%" />fichier xml :
bu1 bu2
comment veux-tu utiliser ça ?
il faudrait avoir un truc du style :
<gras>mon Site] [M'écrire]
cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 20111 18 nov. 2008 à 15:38
le fichier xml est rempli à l'aide d'une page html donc on peut avoir une longue liste de et je veux charger chaque élément contenu dans dans ma liste qui se trouve dans la page html(bu.html).donc si tu sais comment le faire STP montre le moi. je suis bloqué dans mon travail à cause de cette partie et j'ai des contraintes de temps.Merci
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 18 nov. 2008 à 16:13
charger ? ben ça l'est ! tu as chargé le fichoer xml ( ** )
travailler sur le contenu ?
var x = xmlDoc.getElementsByTagName("b");
for ( i=0; i < x.length; i++ )
{ utiliser x[i].firstChild.nodeValue
tu obtiens bu1 puis bu2 de ton exemple
}
( ** ) quoique : pas vérifié le reste !
..
.xmlDoc.async=false;
while(xmlDoc.readyState != 4) {};
xmlDoc.load(xmlFile);
}
if (typeof xmlDoc!="undefined"){
if (window.ActiveXObject){ //if IE, execute script
...
tout ça me semble... disons, bizarre.
cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 20111 18 nov. 2008 à 16:56
merci pour ton script mais je ne comprend pas. STP tu pourrais etre un peu plus clair? c'est quoi utiliser??
tu peux me mettre le script complet STP. merci
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 18 nov. 2008 à 17:40
Bonjour à tous,
tentative d'explication simple et
claire !!!!!!!!!!!!!!!
function ProcessXML() {
//--
var xmlFile = xmlDoc.getElementsByTagName("userLabel");
var nb_userlabel = xmlFile.length;
//--
boucle FOR i
for (i = 0; i < nb_userlabel; i++) {
var collection_child = xmlFile[i].childNodes;
var nb_child =
collection_child.length;
var userLabel;
//-- boucle FOR j
for (j = 0; j <
nb_child; j++) {
var noeud = collection_child[j];
document.write( j +noeud +'
');
if (noeud.nodeType
1) {
var name = noeud.nodeName;
switch (name) {
case "userLabel":
userLabel =
noeud.firstChild.nodeValue; // Initialisation de useLabel
(1)
break;
default:
break;
}
}
} // Fin de la boucle FOR j
//-- tu est dans la boucle FOR
liste_userlabel[i] = new Array(userLabel);
}
}
En fin de boucle FOR j, quel que soit le nombre de userLabel lus
tu ne stockera que la dernière valeur lue attendu que tu la réinialise à chaque
passage voir (1)
Pour tout récupérer il te faut
soit concaténer en
écrivant par exemple
userLabel
+= noeud.firstChild.nodeValue;
soit récupérer sous forme de tableau,
exemple
T_Result[
T_Result.length] = userLabel;
soit concaténer sous forme de tableau
userLabel +=
noeud.firstChild.nodeValue +'&';
et tu split aprés
soit....
Tout ceci bien sur
sans préjugé du reste, il va sans dire.
;O)