Flex中利用HTTPService MXML标签(tag)将XML转化为对象(objects)

下面的例子展示了如何利用HTTPService MXML标签(tag),通过简单的设置 resultFormat属性为“object”,在读取XML文件的同时,将其转化为ActionScript对象。
下面是全部的代码:
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- http://blog.flexexamples.com/2007/09/19/converting-xml-to-objects-using-the-flex-httpservice-mxml-tag/ -->
  3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white"
  7.         creationComplete="serv.send();">
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import mx.rpc.events.FaultEvent;
  11.             import mx.rpc.events.ResultEvent;
  12.             private function serv_result(evt:ResultEvent):void {
  13.                 var resultObj:Object = evt.result;
  14.                 /* Assign the values... */
  15.                 nameText.text = resultObj.album.name;
  16.                 img0Text.text = resultObj.album.images.image[0];
  17.                 img1Text.text = resultObj.album.images.image[1];
  18.                 img2Text.text = resultObj.album.images.image[2];
  19.             }
  20.             private function serv_fault(evt:FaultEvent):void {
  21.                 /* Show the error label. */
  22.                 error.text += evt.fault.faultString;
  23.                 error.visible = true;
  24.                 /* Hide the form. */
  25.                 form.visible = false;
  26.             }
  27.         ]]>
  28.     </mx:Script>
  29.     <mx:String id="XML_URL">album.xml</mx:String>
  30.     <mx:HTTPService id="serv"
  31.             url="{XML_URL}"
  32.             resultFormat="object"
  33.             result="serv_result(event);"
  34.             fault="serv_fault(event);" />
  35.     <mx:ApplicationControlBar dock="true">
  36.         <mx:Label text="{XML_URL}" />
  37.     </mx:ApplicationControlBar>
  38.     <mx:Label id="error"
  39.             color="red"
  40.             fontSize="36"
  41.             fontWeight="bold"
  42.             visible="false"
  43.             includeInLayout="{error.visible}"/>
  44.     <mx:Form id="form"
  45.             includeInLayout="{form.visible}">
  46.         <mx:FormItem label="resultObj.album.name:">
  47.             <mx:Label id="nameText" />
  48.         </mx:FormItem>
  49.         <mx:FormItem label="resultObj.album.images.image[0]:">
  50.             <mx:Label id="img0Text" />
  51.         </mx:FormItem>
  52.         <mx:FormItem label="resultObj.album.images.image[1]:">
  53.             <mx:Label id="img1Text" />
  54.         </mx:FormItem>
  55.         <mx:FormItem label="resultObj.album.images.image[2]:">
  56.             <mx:Label id="img2Text" />
  57.         </mx:FormItem>
  58.     </mx:Form>
  59. </mx:Application>
这是例子中使用的XML文件
Download: album.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <album>
  3.     <name>One</name>
  4.     <images>
  5.         <image>image1.jpg</image>
  6.         <image>image2.jpg</image>
  7.         <image>image3.jpg</image>
  8.     </images>
  9. </album>

你可能感兴趣的:(xml,Flex,httpservice,休闲,MXML标签)