Forums Développement Multimédia

Aller au contenu

Array Multi et XML

CODE Actionscript

6 réponses à ce sujet

#1 pipoulito

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 119 messages

Posté 18 January 2012 - 15:11 PM

Bonjour,

J'ai un structure XML du style (mais que je peux modifier si il y a plus pratique) :
<?xml version="1.0" encoding="utf-8"?>

<Famille>
<Parent nom="1" theme="" code_theme="" stheme="" code_stheme="" texte="" legende="" video="" son="" image="x;x;x;x">
<Enfant nom="a" texte="" legende="" video="" son="" image="x;x;x;x;x;x;x"></Enfant>
<Enfant nom="b" texte="" legende="" video="" son="" image="x;x;x;x;x;x;x"></Enfant>
</Parent>
<Parent nom="2" theme="" code_theme="" stheme="" code_stheme="" texte="" legende="" video="" son="" image="x;x;x;x">
<Enfant nom="a" texte="" legende="" video="" son="" image="x;x;x;x;x;x;x"></Enfant>
<Enfant nom="b" texte="" legende="" video="" son="" image="x;x;x;x;x;x;x"></Enfant>
<Enfant nom="c" texte="" legende="" video="" son="" image="x;x;x;x;x;x;x"></Enfant>
</Parent>
etc...
</Famille>

Pour récupérer dans flash :

for (i = 0; i < this.firstChild.childNodes.length; i++)
{

p_nom[i] = this.firstChild.childNodes[i].attributes.nom;
p_theme[i] = this.firstChild.childNodes[i].attributes.theme;
p_stheme[i] = this.firstChild.childNodes[i].attributes.stheme;
p_code_theme[i] = this.firstChild.childNodes[i].attributes.code_theme;
p_code_stheme[i] = this.firstChild.childNodes[i].attributes.code_stheme;
p_texte[i] = this.firstChild.childNodes[i].attributes.texte;
p_legende[i] = this.firstChild.childNodes[i].attributes.legende;
p_video[i] = this.firstChild.childNodes[i].attributes.video;
p_son[i] = this.firstChild.childNodes[i].attributes.son;
p_image[i] = this.firstChild.childNodes[i].attributes.image;

for (j=0;j<this.childNodes[0].childNodes[i].childNodes.length;j++){

p_child[i]=[[this.childNodes[0].childNodes[i].childNodes[j].attributes.nom,etc..,]] // LE PROBLÈME EST ICI !! je ne peux saisir qu'un enfant alors que j'aurais besoins d'en saisir j dans un tableau multi...
}
}

#2 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 18 January 2012 - 16:07 PM

Si je comprends bien, il faut que votre variable p_child soit un tableau que vous allez peupler avec les enfants :


for (i = 0; i < this.firstChild.childNodes.length; i++) {
  p_nom[i] = this.firstChild.childNodes[i].attributes.nom;
  p_theme[i] = this.firstChild.childNodes[i].attributes.theme;
  p_stheme[i] = this.firstChild.childNodes[i].attributes.stheme;
  p_code_theme[i] = this.firstChild.childNodes[i].attributes.code_theme;
  p_code_stheme[i] = this.firstChild.childNodes[i].attributes.code_stheme;
  p_texte[i] = this.firstChild.childNodes[i].attributes.texte;
  p_legende[i] = this.firstChild.childNodes[i].attributes.legende;
  p_video[i] = this.firstChild.childNodes[i].attributes.video;
  p_son[i] = this.firstChild.childNodes[i].attributes.son;
  p_image[i] = this.firstChild.childNodes[i].attributes.image;
 
  //Tableau des enfants
  p_child[i] = new Array() ;
 
  for (j=0;j<this.childNodes[0].childNodes[i].childNodes.length;j++){
    //Stockage
    p_child[i][j] = {} //Données de l'enfant
  }
}
 


#3 pipoulito

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 119 messages

Posté 18 January 2012 - 16:18 PM

ah d'accord, ce serait donc ainsi pour stocker le nom des enfant liés au parents ?
(dois-je utiliser les {} ) ?
MERCI

p_child[i] = new Array() ;

for (j=0;j<this.childNodes[0].childNodes[i].childNodes.length;j++){
//Stockage
p_child[i][j] = {} //Données de l'enfant
p_child[i][j] = [this.childNodes[0].childNodes[i].childNodes[j].attributes.nom] //Données de l'enfant
}
}

#4 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 18 January 2012 - 16:38 PM

je pense que ce serait plus simple avec E4X

#5 pipoulito

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 119 messages

Posté 18 January 2012 - 16:46 PM

Voir le messagepol2095, le 18 January 2012 - 16:38 PM, dit :

je pense que ce serait plus simple avec E4X
eh oui mais suis en as2...

#6 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 20 January 2012 - 10:00 AM

Voir le messagepipoulito, le 18 January 2012 - 16:18 PM, dit :

(dois-je utiliser les {} ) ?

Non, je les ai juste placé pour indiquer que le stockage des infos enfant devaient se faire à cet endroit, sous forme d'objet de n'importe quel type.


p_child[i][j] = [this.childNodes[0].childNodes[i].childNodes[j].attributes.nom]
 

Attention, les crochets ([]) sont les opérateurs d'initialisation de tableau. En faisant cela, vous allez stocker dans p_child[j], un nouveau tableau peuplé du seul élément [i]this.childNodes[0].childNodes[i].childNodes[j].attributes.nom

Merci d'utiliser les balises de code lorsque vous affichez du code AS dans un message (bouton <> de l'éditeur).

#7 pipoulito

  • Guests

Posté 23 January 2012 - 11:50 AM

Merci donc cela serait de cette forme alors pour tous les attributs...?

p_child[i][j] = [this.childNodes[0].childNodes[i].childNodes[j].attributes.nom, this.childNodes[0].childNodes[i].childNodes[j].attributes.texte, etc...]
 




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)