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
Partager