这个例子演示使用SimpleXMLDecoder类的
结果:
decodeXML()
转换XMLDocument对象为 ActionScript Object对象。
全代码:
<?
xml version="1.0" encoding="utf-8"
?>
<!-- http://blog.flexexamples.com/2007/09/19/converting-xml-to-objects-using-the-flex-simplexmldecoder-class/ -->
< 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 >
<!-- http://blog.flexexamples.com/2007/09/19/converting-xml-to-objects-using-the-flex-simplexmldecoder-class/ -->
< 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 >
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 >
< album >
< name > One </ name >
< images >
< image > image1.jpg </ image >
< image > image2.jpg </ image >
< image > image3.jpg </ image >
</ images >
</ album >
结果:
width="100%" height="250" src="http://blog.flexexamples.com/wp-content/uploads/SimpleXMLDecoder_decodeXML_test/bin/main.html">