Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

Unable to extract Data from XML

Avatar

Avatar
Level 1
pranay_kondekar
Level 1

Likes

0 likes

Total Posts

1 post

Correct Reply

0 solutions
View profile

Avatar
Level 1
pranay_kondekar
Level 1

Likes

0 likes

Total Posts

1 post

Correct Reply

0 solutions
View profile
pranay_kondekar
Level 1

24-11-2008

Hi,

I am using Yahoo Local Search Service which returns the XML
response. I want to retrieve data from the XML that I received. I
stuck at this point and unable to retrieve the response in to
datagrid.

The response XML is as follows



<ResultSet xsi:schemaLocation="urn:yahoo:lcl
http://api.local.yahoo.com/LocalSearchService/V3/LocalSearchResponse.xsd"
totalResultsAvailable="224" totalResultsReturned="1"
firstResultPosition="1" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:yahoo:lcl">

<ResultSetMapUrl>
http://maps.yahoo.com/broadband/?q1=San+Jose%2C+CA+95112&amp;tt=starbucks&amp;tp=1</ResultSetMapUrl>

<Result id="21590724">

<Title>Starbucks</Title>

<Address>145 W Santa Clara St</Address>

<City>San Jose</City>

<State>CA</State>

<Phone>(408) 288-8803</Phone>

<Latitude>37.335236</Latitude>

<Longitude>-121.892765</Longitude>

<Rating>

<AverageRating>4</AverageRating>

<TotalRatings>3</TotalRatings>

<TotalReviews>2</TotalReviews>

<LastReviewDate>1198029377</LastReviewDate>

<LastReviewIntro>My previous review had incorrect
data. That was not true, I am sorry, I didn't know. As far as food
and drink goes, Starbucks is pretty good.</LastReviewIntro>

</Rating>

<Distance>0.96</Distance>

<Url>
http://local.yahoo.com/info-21590724-starbucks-san-jose</Url>

<ClickUrl>
http://local.yahoo.com/info-21590724-starbucks-san-jose</ClickUrl>

<MapUrl>
http://maps.yahoo.com/maps_result?q1=145+W+Santa+Clara+St+San+Jose+CA&amp;gid1=21590724</MapUrl>

<BusinessUrl>
http://www.starbucks.com/</BusinessUrl>

<BusinessClickUrl>
http://www.starbucks.com/</BusinessClickUrl>

<Categories>

<Category id="96926219">Cafes</Category>

<Category id="96926236">Restaurants</Category>

<Category id="96926169">Coffee Houses</Category>

</Categories>

</Result>

</ResultSet>



The code that I am writing to get Title and Address is as
follows.



<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"

layout="vertical"

backgroundAlpha="0" backgroundColor="#FFFFFF">



<mx:HTTPService

id="weatherService"

url="
http://local.yahooapis.com/LocalSearchService/V3/localSearch"

resultFormat="e4x"

result="resultHandler(event);"/>



<mx:Script>

<![CDATA[

import mx.collections.ArrayCollection;

import mx.rpc.events.ResultEvent;



[Bindable]

private var myResult:XML ;

private var temp:XMLNode;

private var list:ArrayCollection;



public function requestWeather():void {

weatherService.cancel();

var params:Object = new Object();

params.appid = "YahooDemo";

params.query = "starbucks";

params.zip = "95112";

params.results = "1"

weatherService.send(params);

}



public function resultHandler(event:ResultEvent):void {

myResult = XML( event.result);

temp = myResult.Result;

list = ArrayCollection(event.result);

}

]]>

</mx:Script>



<mx:Form width="400">

<mx:FormItem label="Get Local Data">

<mx:Button label="Get Data"
click="requestWeather();"/>

</mx:FormItem>

<mx:FormItem label="Address">

<mx:Text text="{myResult.Result.Address}"/>

</mx:FormItem>

<mx:FormItem label="Title">

<mx:Text text="{myResult.Result.Title}"/>

</mx:FormItem>

</mx:Form>



<mx:DataGrid

dataProvider="{myResult}"

x="80" y="141" width="262" height="92"
id="shippingOptionsList" editable="false" enabled="true">

<mx:columns>

<mx:DataGridColumn headerText="Title"
dataField="Result.Title" />

<mx:DataGridColumn headerText="Address"
dataField="Result.Address" />

</mx:columns>

</mx:DataGrid>

<mx:Label text="Response as it is"/>

<mx:TextArea id="resultFld" text="{myResult}" width="400"
height="152"/>





</mx:Application>





Can somebody help me to find where I am going wrong?



Thank you

-Pranay



Replies

Avatar

Avatar
Level 1
Krish_praveen
Level 1

Likes

0 likes

Total Posts

2 posts

Correct Reply

0 solutions
View profile

Avatar
Level 1
Krish_praveen
Level 1

Likes

0 likes

Total Posts

2 posts

Correct Reply

0 solutions
View profile
Krish_praveen
Level 1

03-12-2008

Hi..



I am sending you the sample code for Google Search..

Hope you can check..and u can go ahead



<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
backgroundGradientColors="[0x000000,0x323232]"

width="100%" height="100%"
viewSourceURL="srcview/index.html" verticalAlign="middle"
horizontalAlign="center">

<mx:Script>

<![CDATA[

import com.adobe.webapis.events.*;

import com.adobe.webapis.*;

import com.adobe.serialization.json.*;



import mx.controls.Alert;

import mx.rpc.events.ResultEvent;

import mx.rpc.http.HTTPService;



[Bindable]

private var dgResults:Array; // source for datagrid



private function search():void

{

var service:HTTPService = new HTTPService();

service.url = '
http://ajax.googleapis.com/ajax/services/search/web';

service.request.v = '1.0';

service.request.q = searchStr.text;

service.resultFormat = 'text';

service.addEventListener(ResultEvent.RESULT,
onServerResponse);

service.send();

}

private function onServerResponse(event:ResultEvent):void {

try {

var json:Object = JSON.decode(event.result as String);

if (json.responseData.results is Array) {

dg.dataProvider = json.responseData.results;

}

}

catch (error:Error) {

Alert.show("Error on search: " + error.message);

}

}

private function goToURL():void

{

navigateToURL(new URLRequest(dg.selectedItem.url))

}

]]>

</mx:Script>

<mx:HBox>

<mx:Text text="Search Google:" color="#FFFFFF"/>

<mx:TextInput id="searchStr" enter="search()"
width="200"/>

<mx:Button id="btnSearch" click="search()"
label="Search"/>

</mx:HBox>



<mx:DataGrid id="dg" dataProvider="{dgResults}"
width="90%" height="113" minColumnWidth="200"

variableRowHeight="false" doubleClickEnabled="true"
doubleClick="goToURL()" >

<mx:columns>

<mx:DataGridColumn dataField="url" headerText="URL"
width="200"/>

<mx:DataGridColumn dataField="titleNoFormatting"
headerText="Title" wordWrap="true" width="300"/>

</mx:columns>

</mx:DataGrid>



</mx:Application>