_root.c = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);

Signaler
Messages postés
20
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
Messages postés
20
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
Bonjour
J'ai besoin de la communauté pour résoudre mon gros soucis.
Ci-contre le vous envoi des sources qui fonctionnent MAIS je n'arrive pas et je suis coincé sur un point crucial.
Help Help comme disait l'autre.
Voici ma question :
Le principe de mon fichier est que je cherhe par un code xpath des info d'une page xml.
J'ai 2 boutons. J'arrive à lire le fichier XML et a ramener les infos que je veux dans un champ dynamique.
Mon fichier XML donne 3 infos : et ce que je voudrais et que personne dans mon entourage arrive à faire (j'ai besoin de vrai PRO) c'est un tableau récapitulatif du genre :
m Matt jean
f Heather sophie
m Tucker luc
f Apple marie
m Nate pascal
Ces infos viennent du fichier XML.
Voilà ma question :
comment sortir un tableau de :
myXML.load("xpath.xml")
bnt_F.onPress = function () {
var chemin = "/employees/person[@gender='f']";
_root.c = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);
?????????????

Merci

les sources :
coté fla :

function Remplir (texte){
 /* on supprime le contenu du textarea*/
 txt_pesonne.text  =""
 /* on ajoute chaque personne au textarea*/
  for (var i = 0; i < texte.length; i++) {
   txt_pesonne.text+=texte[i];
  }
}
myXML = new XML()
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
 if(success){
 /* definit le chemin*/
  var chemin = "/employees/person"
  /* on récupère toutes les personnes*/
  var personNoeud = mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin);
  /* on remplit le textarea */
  Remplir (personNoeud )
 }
}
myXML.load("xpath.xml")
bnt_F.onPress = function () {
var chemin = "/employees/person[@gender='f']";
_root.c = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);


  /* on ajoute chaque personne au textarea*/


}
bnt_H.onPress = function () {
var chemin = "/employees/person[@gender='m']";
_root.c = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);
  /* on ajoute chaque personne au textarea*/


}

coté : XML  nom du fichier = xpath.xml

  
  
  
  
  
 

<!-- / message -->
<!-- attachments -->

6 réponses

Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Je n'ai pas vraiment saisi ce que tu voulais faire. Mais pour obtenir dans ton TextArea le même style de formulation que tu à donnée, il faut changer ta boucle et y mettre quelque chose plus dans ce style :

for (var i = 0; i < texte.length; i++) {
   txt_pesonne.text += " " + texte[i].attributes.gender;
   txt_pesonne.text += " " + texte[i].attributes.nom;
   txt_pesonne.text += " " + texte[i].attributes.prenom;
   txt_pesonne.text += newline;
}

Bon après c'est à toi de voir. Ou de refaire ta demande si c'est mal saisis.
Aller @+
Flo
Messages postés
20
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Désolé, ça ne marche pas, j'ai du mal formuler ma question.
Voilà,
Par l'exemple, qui marche, ci-dessus, je récupère par un bouton dans un champ dynamique que j'ai appelé c les infos suivante :
,,,,

Je ne peux pas afficher cela.
J'aimerai avoir un tableau, normal, Non ?
Mais je n'y Arrive vraiment pas et je suis vraiment coincé.

Merci pour ton précieux aide
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Pour que mon bout de code fonctionne il faut que ton TextArea ou ton TextFiled autorise le multiligne :
Ca te donne ca en théorie dans la zone de texte :

 m Matt jean
 f Heather sophie
 m Tucker luc
 f Apple marie
 m Nate pascal

Aller @+
Flo
Messages postés
20
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Désolé, je n'arrive pas à comprendre.


Serais tu assez sympathique pour me faire le code ? (par rapport au code ci-dessus) ???


Merci beaucoup
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Alors moi je veux bien être sympa, je veux bien le faire, mais en fait c'est pas au code qu'il faut toucher pour mettre en multilignes.
Ou si tu peu utiliser le paramètre qui est associé en boolean.
Bref ce qu'il faut savoir b'abord, c'est ce que tu entend par tableau. Tu veux parler d'un Tablaeu "Array", dans lequel tu va ranger tes données pour ensuite les mettres dans une zone de texte ( TextArea ou TextFiled ). Ou bien par tablaeu entend tu une présentation en forme de tablaeu de tes donnée, dans ta zone de texte .
Et puis au fait, c'est quoi "

_root.c
"

Bon bah maintenant je te laisse la main, et je faire en conséquence.

Aller @+
Flo
Messages postés
20
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

C'est bon merci, Voici la solution :


function Remplir(ar:Array) {
 /* on supprime le contenu du textarea*/
 txt_personne.text = "";
 /* on ajoute chaque personne au textarea*/
 for (var i = 0; i<ar.length; i++) {
  txt_personne.text += ar[i].attributes.nom+" "+ar[i].attributes.prenom+"\n";
 }
}
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
 if (success) {
  /* definit le chemin*/
  var chemin = "/employees/*";
  /* on récupère toutes les personnes*/
  var personNoeud = mx.xpath.XPathAPI.selectNodeList(this.firstChild, chemin);
  //txt_personne.text=personNoeud[1].attributes.nom
  /* on remplit le textarea */
  Remplir(personNoeud);
 }
};
myXML.load("xpath.xml");
bnt_F.onPress = function() {
 var chemin = "/employees/*[@gender='f']";
 Remplir( mx.xpath.XPathAPI.selectNodeList(myXML.firstChild, chemin));
 /* on ajoute chaque personne au textarea*/
};
bnt_H.onPress = function() {
 var chemin = "/employees/*[@gender='m']";
 Remplir( mx.xpath.XPathAPI.selectNodeList(myXML.firstChild, chemin));
 /* on ajoute chaque personne au textarea*/
};

Bon flash à tous
et merci