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 :

Récupérer des éléments et attributs XML avec n'importe quel namespace


Sujet :

Flex

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Points : 34
    Points
    34
    Par défaut Récupérer des éléments et attributs XML avec n'importe quel namespace
    Bonjour,
    je suis débutant en flex 3, mon problème est le suivant:
    j'essaie d'appeler un httpservice nommé gbif et j'aimerai afficher les résultats dans un datagrid pour cela je dois parcourir son arbre xml et comme les noeuds ont cette forme <gbif:gbifresponse> j'amerai savoir comment y accéder à ce genre de noeud en flex 3.
    j'ai pu afficher le résultat dans un alert show mais pas dans mon datagrid

    voici le lien vers le httpservice de gbif: http://data.gbif.org/ws/rest/occurre...sourcekey=8438

    voici mon code:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  xmlns:gbif="http://portal.gbif.org/ws/response/gbif"
     
        layout="vertical">
    <mx:Script>
        <![CDATA[
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
            import mx.rpc.events.FaultEvent;
     
            [Bindable] var indice:XML;
            [Bindable] var attributes:XMLList;
     
     
            public function processResult(evt:ResultEvent):void{
            //    var gbif:Namespace = new Namespace("http://data.gbif.org/ws/rest/resource/get/8438");
                namespace gbif='http://portal.gbif.org/ws/response/gbif'
     
                use namespace gbif;
                indice= new XML(evt.result);
                Alert.show(indice.toXMLString());   // flux xml
     
                attributes=new XMLList(indice.gbif::dataProviders.gbif::dataProvider.gbif::dataResources.gbif::dataResource.gbif::name);
     
     
                Alert.show(attributes.text());
     
                //Alert.show(indice.lastResult.gbifResponse.toXMLString());    
                nbResult.text ="Nombres total de résultats:";
                nbResult.text+=indice.totalResultsAvailable;
            }
     
            public function faultHandler(evt:FaultEvent):void{
                Alert.show("Une erreur s'est produite\n:"+ "\nDetails\n"+ "faultCode:"+ evt.fault.faultDetail+"\n"+ "faultstring:"+ evt.fault.faultString+ "\n");
            }
     
     
        ]]>
    </mx:Script>
    <mx:HTTPService id="birds" url="http://data.gbif.org/ws/rest/taxon/list" result="processResult(event)" fault="faultHandler(event)" method="GET" resultFormat="e4x" showBusyCursor="true">
        <mx:request xmlns="">
     
     
     
            <dataresourcekey>
                {formKey.text}
            </dataresourcekey>
            <maxresults>
                10
     
            </maxresults>
        </mx:request>
    </mx:HTTPService>
     
    <!--get-->
     
     
     
    <mx:Form label="paramètres da la requête">
     
        <mx:FormItem label="Entrez une clé valide(8438)">
            <mx:TextInput id="formKey"/>
        </mx:FormItem>
    </mx:Form> 
        <mx:DataGrid dataProvider="{attributes}" width="900" height="300">
            <mx:columns>
            <mx:DataGridColumn dataField="gbif:name"/>
                <!--<mx:DataGridColumn dataField="tn:nameComplete"/>
                <mx:DataGridColumn dataField="to:earliestDateCollected"/>
                <mx:DataGridColumn dataField="to:latestDateCollected"/>
                <mx:DataGridColumn dataField="to:decimalLongitude"/>
                <mx:DataGridColumn dataField="to:country"/>-->
            </mx:columns>
        </mx:DataGrid>
    <mx:Button label="lancer la recherche" click="birds.send()"/>    
    <mx:Label id="nbResult"/>
     
    </mx:Application>


    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonjour je n'ai jamais manipulé de XML contenant des namespace mais as tu essayé sans mettre les namespaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <mx:DataGrid dataProvider="{attributes}" width="900" height="300">
            <mx:columns>
            <mx:DataGridColumn dataField="name"/>
            </mx:columns>
        </mx:DataGrid>
    Sinon il y a la doc si cela peut aider, il y a pleins d'exemples tu pourras peut être trouver quelque chose qui te conviendra.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    en fait j'ai casté mon namespace dans une variable et j'ai déclaré une fonction qui me retourne mon attribut et que j'ai appelé ensuite dans mon datagridcolumn et ça fonctionne. Merci.

    Code AS3 :
    private var gbif:Namespace=new Namespace("http://portal.gbif.org/ws/response/gbif");

    public function gbifFunc(attributes:Object, colataGridColumn):String
    {
    return attributes.gbif::name;
    }



    Code mxml :
    <mxataGridColumn headerText="espèce" labelFunction="gbifFunc"/>

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Si tu as trouvé la solution, n'oublie pas de cliquer le tag

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

Discussions similaires

  1. [MySQL] Récupérer des éléments d'une base
    Par kumo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/11/2007, 12h25
  2. [SNMP] récupérer des informations de la MIB avec un script snmp
    Par patchiko dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/06/2007, 11h05
  3. [SimpleXML] Récupérer des mots étrangers dans XML
    Par yamayo dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/11/2006, 23h25
  4. Ajouter des éléments à un document XML
    Par ptr83 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 17/10/2006, 08h43
  5. Récupérer des données dans un .XML
    Par Lootro dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/08/2006, 22h38

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