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 :

Parser un XML avec des références [Flex4]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Par défaut Parser un XML avec des références
    Bonjour à tous,

    Dans le cadre d'un projet flex, je fais appel à un webservice, qui me renvoie un fichier XML, que je passe en dataProvider à une dataGrid.

    Jusquici pas de problème, sauf que mon XML me revoie parfois des références lorsqu'un noeud apparaît plusieurs fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Parametre>
        <id>001</id>
        <libelle>test</libelle>
    </Parametre>
    ....
    <Parametre reference="../../storedSnapshot/Parametre[1]"/>
    La cellule du tableau qui devrait contenir une deuxieme fois le même paramètre est vide.

    Comment faire ?
    - Soit il faut que je trouve comment remplacer toutes les références par le noeud complet comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Parametre>
        <id>001</id>
        <libelle>test</libelle>
    </Parametre>
    ....
    <Parametre>
        <id>001</id>
        <libelle>test</libelle>
    </Parametre>
    - Soit il faut que je trouve comment forcer le datagrid à aller chercher le bon noeud d'après la référence...

    Merci d'avance !

  2. #2
    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,
    je pense que tu viens d'énoncer les 2 solutions
    le plus simple serait de retransformer le XML à mon avis. Sinon tu vas devoir parser ton XML côté Flex, tu risques de rajouter pas mal de code si à chaque fois tes noeuds sont de type différent. En terme de clarté et de complexité, il me semble que la première solution est la meilleure.

    Mais tout dépend finalement de comment tu as codé ton Flex jusqu'ici, est-ce que tu accèdes aisément à n'importe quel objet que tu viens de remplir à partir de ton XML ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Par défaut
    Je me demandais si il existant une libraire qui ferait la 1ère solution toute seule....

    Pour l'instant j'y accède très simplement:

    Je récupère le XML et je le passe en dataProvider de la grid:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var x:XML = new XML(event.result as XML);
    var listeObjets:XMLListCollection = new XMLListCollection(XMLList(x.contenu.Objet));
    dataGrid.dataProvider = listeObjets;
    La grid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <s:DataGrid id="dataGrid" requestedRowCount="1">
        <s:columns>
            <s:ArrayList>
                <s:GridColumn dataField="categorie.libelle" headerText="catégorie de l'objet"></s:GridColumn>
    ...

  4. #4
    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
    A ma connaissance il ne me semble pas. (quelqu'un d'autre?)
    Mais compte tenu de ton code, je plussoie que la première solution est la plus simple

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Par défaut
    Ok, en gros j'insère du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var x:XML = new XML(event.result as XML);
    var listeObjets:XMLListCollection = new XMLListCollection(XMLList(x.contenu.Objet));
     
    //Nouveau Code
    foreach(objet in listeObjets){
        //je teste si le noeud est une référence
        if(objet.parametre.reference != undefined){
            // Si oui, alors je remplace par la valeur du noeud qu'il reference
            objet.parametre = autreobjet.parametre[nombre];
        }
     
    dataGrid.dataProvider = listeObjets;
    C'est ce que je redoutais ....

  6. #6
    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
    D'où est-ce que tu récupères le XML ? La transformation ne peut pas se faire avant ?

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

Discussions similaires

  1. [XML] Parser un XML avec des namespaces
    Par Eljildius dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/02/2015, 20h04
  2. API Java pour parser un XML avec des balises avec nom de package
    Par rebelle49 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 11/08/2014, 13h22
  3. Parser un fichier xml avec des tag names contenant ":" !
    Par sofien dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/11/2010, 10h40
  4. parser du xml avec des methodes compatibles php4/php5
    Par chezdevelopping dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/12/2009, 15h44
  5. [CXF et JAXB] Parser un fichier XML avec des namespaces
    Par cowa dans le forum Services Web
    Réponses: 0
    Dernier message: 26/02/2009, 14h30

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