IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Atteindre les attributes d'un XML


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut Atteindre les attributes d'un XML
    Bonjour à tous,

    Je me demandais s'il était possible de stocker dans un ArrayCollection, à la fois à la fois la valeur d'un noeud mais aussi la valeur de son attribut ?
    Exemple d'XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Resultats>
        <CodeTarif ID="1">TARIF CANADA</CodeTarif> 
        <CodeTarif ID="2">TARIF ETATS_UNIS</CodeTarif> 
    </Resultats>
    Pour l'instant lorsque je veux récupérer toutes les valeurs je m'y prend comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var provider:ArrayCollection = event.result.Resultats.CodeTarif;
    Donc pour résumer, ce que je voudrais au final, c'est un ArrayCollection avec deux colonnes, une pour ID et l'autre pour le CodeTarif.

    J'ai vu qu'il existait pas mal d'objets XML différents, si quelqu'un pouvait me donner une piste pour mes recherches, je l'en remercie d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    Je ferais peut-être ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var xml:XML = new XML( event.target.data );
    var provider:ArrayCollection = new ArrayCollection();
     
    var codeTarifs:XMLList = xml.CodeTarif;
    for each(var codeTarif:XML in codeTarifs){
     var o:Object = new Object();
     o.id = codeTarif.@ID;
     o.codetarif = codeTarif;					 
     provider.addItem(o);
    }

  3. #3
    Membre éclairé Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Merci beaucoup pour ta réponse,

    Je rencontre un petit souci avec "event.target.data". Il me génère une erreur (laquelle je ne sais pas parce que mon débugeur ne réagit plus depuis quelques temps mais ça c'est une autre histoire ).
    Alors je l'ai remplacé par un event.result dont j'ai mis ce que donne l'alerte en pièces jointes.

    En faisant cela, il n'y a plus d'erreur mais par contre rien ne s'affiche dans ma combobox (bien que j'ai mis le labelField="id").

    Une idée ?
    Fichiers attachés Fichiers attachés

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    tu utilises un URLLoader pour charger ton fichier XML ?

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,
    as-tu vérifié que ton ArrayCollection est bien rempi ?

  6. #6
    Membre éclairé Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Non un httpService sur un WebService qui me retourne un XML

    EDIT : et pour l'ArrayCollection, il n'est pas rempli parce que on n'entre jamais dans la boucle.
    (J'ai mis la pièce jointe plus haut)

  7. #7
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Citation Envoyé par ToniConti Voir le message
    EDIT : et pour l'ArrayCollection, il n'est pas rempli parce que on n'entre jamais dans la boucle.
    Au moins tu sais pourquoi ta ComboBox est vide

  8. #8
    Membre éclairé Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Bon apparemment le problème vient de la lecture du XML.
    Puisque avec ceci tout fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    private function codeTarif(event:ResultEvent):void
    {
    	var provider:ArrayCollection = new ArrayCollection();
    	var xml:XML = 
    		<ListeCodeTarif>
    			<CodeTarif ID="TCA">TARIF CANADA</CodeTarif>
    			<CodeTarif ID="TUS">TARIF ETATS_UNIS</CodeTarif>
    			<CodeTarif ID="TEB">TARIF EURO BELGIQUE</CodeTarif>
    			<CodeTarif ID="TEF">TARIF EURO FRANCE</CodeTarif>
    			<CodeTarif ID="TEH">TARIF EURO HOLLANDE</CodeTarif>
    			<CodeTarif ID="TEX">TARIF EXPORT</CodeTarif>
    			<CodeTarif ID="TUK">TARIF GRANDE BRETAGNE</CodeTarif>
    			<CodeTarif ID="TCH">TARIF SUISSE</CodeTarif>
    		</ListeCodeTarif>
    	var codeTarifs:XMLList = xml.CodeTarif;
    	for each(var item:XML in codeTarifs)
    	{
    		var o:Object = new Object();
    		o.id = item.@ID;
    		o.codetarif = item;
    		provider.addItem(o);
    	}
    	comboCodeTarif.dataProvider = provider;
    }
    EDIT :
    J'ai du neuf :
    var temp = event.result;
    Alert.show(temp.toString); //function Function() {}

  9. #9
    Membre éclairé Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Résolu.
    Ce qu'il manquait est en gras ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:HTTPService url="http://localhost/GestTarif/ListeCodeTarif.csp"
    	result="codeTarif(event)" fault="mssqlFault(event)" resultFormat="e4x"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    private function codeTarif(event:ResultEvent):void
    {
    	var provider:ArrayCollection = new ArrayCollection();
     
    	for each(var item:XML in XML(event.result).CodeTarif)
    	{
    		var o:Object = new Object();
    		o.id = item.@ID;
    		o.lib = item;
    		provider.addItem(o);
    	}
    	comboCodeTarif.dataProvider = provider;
    	ListeConditionTarifaire.send();
    }
    C'est pourtant les bases et je suis passé à côté.

  10. #10
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Lol c'est vrai que c'est dommage, on est tous passé à côté lol.
    Au moins c'est résolu maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/08/2010, 15h32
  2. [DOM] Entités dans les attributs d'un XML généré par DOM
    Par angelinemm dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/05/2008, 09h26
  3. Réponses: 1
    Dernier message: 01/07/2006, 11h18
  4. Réponses: 2
    Dernier message: 14/06/2006, 10h34
  5. Réponses: 3
    Dernier message: 01/04/2005, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo