Flex中利用SimpleXMLEncoder将对象(objects)转化为XML的例子

在前面的 Flex中利用SimpleXMLDecoder类将XML转化为对象(objects),我们看到了如何利用SimpleXMLDecoder类和 decodeXML()事件,将一个XML的instance转为一个对象的instance。
下面的例子展示了如何利用Flex的SimpleXMLEncoder类和encodeValue()事件将一组对象(objects)转为XML对象。
下面是具体的例子以及源代码:
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- http://blog.flexexamples.com/2008/03/04/converting-objects-to-xml-packets-using-the-simplexmlencoder-class-in-flex/ -->
  3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white"
  7.         creationComplete="init();">
  8.     <mx:ArrayCollection id="arrColl">
  9.         <mx:source>
  10.             <mx:Array>
  11.                 <mx:Object c1="1.A" c2="1.B" />
  12.                 <mx:Object c1="2.A" c2="2.B" />
  13.                 <mx:Object c1="3.A" c2="3.B" />
  14.                 <mx:Object c1="4.A" c2="4.B" />
  15.                 <mx:Object c1="5.A" c2="5.B" />
  16.                 <mx:Object c1="6.A" c2="6.B" />
  17.             </mx:Array>
  18.         </mx:source>
  19.     </mx:ArrayCollection>
  20.     <mx:Script>
  21.         <![CDATA[
  22.             import mx.rpc.xml.SimpleXMLEncoder;
  23.             import mx.utils.ObjectUtil;
  24.             private function init():void {
  25.                 var xml:XML = objectToXML(arrColl.source);
  26.                 textArea1.text = ObjectUtil.toString(arrColl.source);
  27.                 textArea2.text = xml.toXMLString();
  28.             }
  29.             private function objectToXML(obj:Object):XML {
  30.                 var qName:QName = new QName("root");
  31.                 var xmlDocument:XMLDocument = new XMLDocument();
  32.                 var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
  33.                 var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
  34.                 var xml:XML = new XML(xmlDocument.toString());
  35.                 // trace(xml.toXMLString());
  36.                 return xml;
  37.             }
  38.         ]]>
  39.     </mx:Script>
  40.     <mx:HDividedBox width="100%" height="100%">
  41.         <mx:TextArea id="textArea1"
  42.                 editable="false"
  43.                 width="100%"
  44.                 height="100%" />
  45.         <mx:TextArea id="textArea2"
  46.                 editable="false"
  47.                 width="100%"
  48.                 height="100%" />
  49.     </mx:HDividedBox>
  50. </mx:Application>

你可能感兴趣的:(职场,休闲)