The following example shows how you can convert an XML file loaded at run-time using the HTTPService tag, into an ActionScript Object by simply setting the resultFormat
property to “object”.
Full code after the jump.
<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2007/09/19/converting-xml-to-objects-using-the-flex-httpservice-mxml-tag/ --> <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; private function serv_result(evt:ResultEvent):void { var resultObj:Object = evt.result; /* 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="object" 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>
<?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>
View source is enabled in the following example.