XML -> Array = Décalage :'(

XML -> Array = Décalage :'( - Flash/ActionScript - Programmation

Marsh Posté le 17-09-2004 à 00:31:38    

Bonsoir tout le monde,
 
Je souhaite charger un contenu XML dans 2 Array différents.
 
Après avoir galéré 4 ou 5 heures, j'ai trouvé sur le site un exemple de code qui m'a bien fait avancer. Je l'ai adapaté à mon besoin et je me trouve nez à nez avec un problème dont je ne saurai vous dire l'origine.
 
C'est pourquoi je souhaite que vous m'aidiez.
 
Voici mon fichier "data.xml" :
 

Code :
  1. <SOUNDS>
  2. <SWF id="1" nom="L'Odyssée suit son cours" file="odyssee"/>
  3. <SWF id="2" nom="Underground Connexion" file="underground"/>
  4. <SWF id="3" nom="Sérieux dans nos affaires" file="serieux"/>
  5. <SWF id="4" nom="Classik" file="classik"/>
  6. <SWF id="5" nom="Shoota Babylone" file="babylone"/>
  7. </SOUNDS>


 
Voici le code que j'utilise :
 

Code :
  1. stop();
  2. liste = new Array();
  3. z_name = new Array();
  4. z_file = new Array();
  5. base_XML = new XML();
  6. base_XML.onLoad = traiteXML;
  7. base_XML.load("data.xml" );
  8. function traiteXML (){
  9. //on charge le contenu de notre XML
  10. liste = base_XML.firstChild.childNodes;
  11. for(i=0; i<liste.length; i++)
  12. {
  13. z_name[i] = liste[i].attributes.nom;
  14. }
  15. for(i=0; i<liste.length; i++)
  16. {
  17. z_file[i] = "sample_" + liste[i].attributes.file;
  18. }
  19. }


 
Le problème c'est q'il y'a une ligne vide entre chaque élément de mes tableaux :
 
z_name contient ceci :

[0] :  
[1] : L'Odyssée suit son cours
[2] :
[3] : Underground Connexion
[4] :
[5] : Sérieux dans nos affaires
[6] :
[7] : Classik
[8] :
[9] : Shoota Babylone
[10] :


 
idem pour z_file mais avec les données qui se trouvent dans la variable "file".
 
Je ne parviens pas à trouver l'origine du problème même si je soupçonne cette ligne

liste = base_XML.firstChild.childNodes;


 
Pouvez-vous m'aider à résoudre ce problème s'il vous plait.
 
Merci à tous ceux/celles qui liront et/ou répondront à mon message.
 
Inekman.
 
ps : demandez des précisions si c'est mal expliqué.


Message édité par Inekman le 17-09-2004 à 00:33:25
Reply

Marsh Posté le 17-09-2004 à 00:31:38   

Reply

Marsh Posté le 17-09-2004 à 02:17:19    

Vois avec  

Code :
  1. base_XML = new XML();
  2. base_XML.ignoreWhite = true;
  3. base_XML.onLoad = traiteXML;
  4. base_XML.load("data.xml" );


 
( http://www.macromedia.com/support/ [...] ry840.html )


Message édité par Mr Mala le 17-09-2004 à 02:20:05
Reply

Marsh Posté le 17-09-2004 à 16:52:09    

Big big big MERCI Mr Mala. Ca roule nikel chrome.
 
Big up.
 
Inekman.

Reply

Marsh Posté le 17-09-2004 à 16:53:07    

inekman a écrit :

Big big big MERCI Mr Mala. Ca roule nikel chrome.
 
Big up.
 
Inekman.


 
Heuuu oui oui de rien mais t'as compris pourquoi au moins ? :p

Reply

Marsh Posté le 17-09-2004 à 18:00:43    

et bien apparement il insérait des lignes vides, dont j'ignore l'origine, et la valeur "true" placée dans la propriété ignoreWhite résoud ce problème :)
 
Que dois-je comprendre d'autre ?

Reply

Marsh Posté le 17-09-2004 à 18:11:15    

Ben d'OU venaient ces lignes vides ! ... t'as été lire la doc de ignoreWhite ? :p
Allez, un indice : apparament, tu a créé ton fichier XML sous Win ... si tu l'avais édité sous Unix/Linux, tu n'aurais pas eu ce problème ...

Reply

Marsh Posté le 17-09-2004 à 18:21:25    

serait-ce un problème d'Unicode ou autre ? :)

Reply

Marsh Posté le 17-09-2004 à 18:29:01    

Perduuuu :D
C'est le problème des CR-LF ( carriage return + line feed )à la fin des lignes d'un texte sous Win ... :p

Reply

Marsh Posté le 17-09-2004 à 18:50:17    

ouuuiinn :)
 
par contre j'ai un autre prob là...Un swf est chargé dans le level10 et je voudrai le changer mais je ne retrouve plus cette ligne...
 
Y'a une technique pour faire une recherche dans le code ? C'est trop bizarre :)

Reply

Marsh Posté le 17-09-2004 à 19:29:15    

Tu veux dire rechercher globalement dans tous les AS de toutes les frames de ton anim ???
houlà je crois pas !
Faut que tu passes en revue tout tes actionscripts pour retrouver la ligne qui le crée !

Reply

Marsh Posté le 17-09-2004 à 19:29:15   

Reply

Marsh Posté le 17-09-2004 à 19:48:42    

youpla boom, g trouvé ;)
 
Merci pour tout Mr Mala. Tu viens de me faire avancer un taf qui n'avancait pas depuis 1 an et demi.
 
Big up 4 Eternity man.
 
Inekman.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed