[RESOLU]XML et flash -> je trouve pas l'erreur

XML et flash -> je trouve pas l'erreur [RESOLU] - Flash/ActionScript - Programmation

Marsh Posté le 24-08-2005 à 14:05:23    

Salut, voilà, j'ai un document xml créé via un script php.
Jusque là, pas de problème... Je récupère l'xml par actionscript en faisant un  
 
gallerie.load("test2.php?cat=gall" );
 
toujours pas de prob. Mais voilà, dès que j'essaye après d'accéder à mes données, les variables prennent des valeurs indéfinies...
 
Bon, après avoir testé pas mal de trucs, j'en ai déduis que le problème vient de la structure que le fichier php me sort.
Hors, je ne vois pas l'erreur... Donc voici l'xml chargé par flash dans lequel il devrait y avoir un problème :??:  
 

Code :
  1. <? xml version="1.0" encoding="iso-8859-1" ?>
  2. <racine>
  3.     <image big="gallerie_dessin/37.jpg" small="gallerie_dessin/small_37.jpg">
  4. <txt content="Ceci est une photo magnifique <b>oui oui </b><br>alors qu'en dis-tu espèce de palmipède déglingué?" />
  5.      </image>
  6. </racine>


 
Il y a forcément un truc qui cloche étant donné que j'ai testé cette structure avec flash sans passer par le script php et que ça foire et d'autre part, j'ai testé un autre xml avec le flash et là, ça marchait...
 
Je suis tout à fait débutant en xml donc je n'ai peut-être pas remarqué quelque chose.
 
Help!


Message édité par Psykolio le 26-08-2005 à 16:13:24
Reply

Marsh Posté le 24-08-2005 à 14:05:23   

Reply

Marsh Posté le 24-08-2005 à 15:52:53    

tu peux montrer le code flash ?? tu ne peux pas récupérer le XML directement en action script car ça bug il faut couper ce que tu reçoit !

Reply

Marsh Posté le 25-08-2005 à 13:31:09    

hein, quoi ?? faut couper quoi ???
 
Je dirai :  
 
Il faut instancier un objet XML (est-ce que gallerie est un objet XML ?? genre : var gallerie:XML = new XML())
 
Il faut que ton fichier soit encodé en UTF8 (tu ouvre ton fichier avec le bloc-note, et tu fais "enregistrer sous", tu choisis le format UTF-8 et tu valide pour que ça soit ok)
 
 
Enfin, je pense qu'il faut instancier de cette manière ton objet XML :  

Code :
  1. var gallerie:XML = new XML();
  2. gallerie.ignoreWhite = true;
  3. gallerie.onLoad = function( success:Boolean )
  4. {
  5. if( success )
  6. trace( this );
  7. else
  8. trace( 'xml not loaded, sorry...' );
  9. }
  10. gallerie.load( 'myXml.xml' );


 
Bon courage, a++

Reply

Marsh Posté le 26-08-2005 à 15:15:51    

je suis de retour... mon problème s'est en partie résolu...
j'ai découvert que si je n'ai pas le "<? xml version="1.0" encoding="iso-8859-1" ?>" au début du xml, ça le charge...
sinon, oui, gallerie est un objet xml que j'ai correctement déclaré.
 
bon, ceci dit, le problème ne s'est qu'en partie résolu.  
En fait, ma source xml vient d'un fichier php, qui me génère ce code pour l'instant:
 

Code :
  1. <racine><image big="gallerie_dessin/37.jpg" small="gallerie_dessin/small_37.jpg">
  2.  <txt content="Ceci est une photo magnifique <b>oui oui </b><br>alors qu'en dis-tu espece de palmipede deglingue?" />
  3.  </image>
  4. <image big="gallerie_dessin/38.jpg" small="gallerie_dessin/small_38.jpg">
  5.  <txt content="alala comme c'est beau" />
  6.  </image>
  7. </racine>


 
si je lance le fichier php et que je regarde la source, j'obtiens bien ce code.
 
Par contre, si dans flash je fais un "trace(this.gallerie)"
 
il m'affiche  
 

Code :
  1. <racine><image big="gallerie_dessin/37.jpg" small="gallerie_dessin/small_37.jpg" /></racine>


 
voilà, oui le fichier est chargé, mais il m'a sucré les 3/4 en cours de route... Et ça se confirme si j'essaye de compter le nombre d'images... il me retourne 1, il devrait y en avoir deux!!!
 
Sinon, j'ai enregistré le fichier php en UFT8... rien ne change
 
Voilà, je nage dans la panade, merci de votre aide!!!

Reply

Marsh Posté le 26-08-2005 à 16:12:30    

yopla, j'ai trouvé le problème qui est franchement dû à mon manque d'expérience en xml...
ça foirait à cause des balises html incluses dans le texte de <txt content>
pour éviter ça, j'ai changé ma structure pour avoir un  
 

Code :
  1. <racine>
  2. <image big="gallerie_dessin/37.jpg" small="gallerie_dessin/small_37.jpg">
  3.  <![CDATA[Ceci est une photo magnifique <b>oui oui </b><br>alors qu'en dis-tu espece de palmipede deglingue?]]>
  4.  </image>
  5. <image big="gallerie_dessin/38.jpg" small="gallerie_dessin/small_38.jpg">
  6.  <![CDATA[alala comme c'est beau]]>
  7.  </image>
  8. </racine>


 
le <![CDATA[]]> permet l'insertion dans les balises xml de balises html sans que ces dernières soient prises en compte par le xml...
 
ouf voili voilou

Reply

Marsh Posté le 28-08-2005 à 13:48:49    

Bien joué ;)
Au premier abord, je n'avais pas fait attention aux balises html dans les parties textes, mais il est clair que ça fausse le xml. Donc comme tu le préconise, CDATA pour résoudre le problème

Reply

Sujets relatifs:

Leave a Replay

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