Search Flex Samples

Converting XML to objects using the Flex SimpleXMLDecoder class

The following example shows how you can use the decodeXML() method in the SimpleXMLDecoder class to convert an XMLDocument object into an ActionScript Object object.






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

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

layout="vertical"

verticalAlign="middle"

backgroundColor="white"

creationComplete="serv.send();">



<mx:Script>

<![CDATA[

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.rpc.xml.SimpleXMLDecoder;



private function serv_result(evt:ResultEvent):void {

/* Convert XMLNode to XMLDocument. */

var xmlStr:String = evt.result.toString();

var xmlDoc:XMLDocument = new XMLDocument(xmlStr);

var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);

var resultObj:Object = decoder.decodeXML(xmlDoc);

/* Assign the values... */

nameText.text = resultObj.album.name;

img0Text.text = resultObj.album.images.image[0];

img1Text.text = resultObj.album.images.image[1];

img2Text.text = resultObj.album.images.image[2];

}



private function serv_fault(evt:FaultEvent):void {

// Show the error label.

error.text += evt.fault.faultString;

error.visible = true;

// Hide the form.

form.visible = false;

}

]]>

</mx:Script>



<mx:String id="XML_URL">album.xml</mx:String>



<mx:HTTPService id="serv"

url="{XML_URL}"

resultFormat="xml"

result="serv_result(event);"

fault="serv_fault(event);" />



<mx:ApplicationControlBar dock="true">

<mx:Label text="{XML_URL}" />

</mx:ApplicationControlBar>



<mx:Label id="error"

color="red"

fontSize="36"

fontWeight="bold"

visible="false"

includeInLayout="{error.visible}"/>



<mx:Form id="form"

includeInLayout="{form.visible}">

<mx:FormItem label="resultObj.album.name:">

<mx:Label id="nameText" />

</mx:FormItem>

<mx:FormItem label="resultObj.album.images.image[0]:">

<mx:Label id="img0Text" />

</mx:FormItem>

<mx:FormItem label="resultObj.album.images.image[1]:">

<mx:Label id="img1Text" />

</mx:FormItem>

<mx:FormItem label="resultObj.album.images.image[2]:">

<mx:Label id="img2Text" />

</mx:FormItem>

</mx:Form>



</mx:Application>

View album.xml


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

<album>

<name>One</name>

<images>

<image>image1.jpg</image>

<image>image2.jpg</image>

<image>image3.jpg</image>

</images>

</album>

0 comments:

Related Flex Samples

Learn Flex: Flex Samples | Flex Video Tutorials Flex Examples