ActionScript 3.0中如何解析XML节点和对象的例子

By Minidxer | August 31, 2008

接下来的例子演示了ActionScript 3.0中如何解析XML节点和对象。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application name="XML_parser_test"
  3.         xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="horizontal"
  5.         verticalAlign="middle"
  6.         backgroundColor="white"
  7.         initialize="init();">
  8.  
  9.     <mx:Script>
  10.         <![CDATA[
  11.             import mx.rpc.xml.SimpleXMLDecoder;
  12.             import mx.utils.ObjectUtil;
  13.  
  14.             private function init():void {
  15.                 var obj:Object = xmlToObject(xmlDP);
  16.  
  17.                 txtXML.text = xmlDP.toXMLString();
  18.                 txtObject.text = ObjectUtil.toString(obj);
  19.  
  20.                 lblXML.text = xmlDP.entry.child('font-family').text();
  21.                 lblObject.text = String(obj.root.entry["font-family"]);
  22.             }
  23.  
  24.             private function xmlToObject(value:XML):Object {
  25.                 var xmlStr:String = value.toXMLString();
  26.                 var xmlDoc:XMLDocument = new XMLDocument(xmlStr);
  27.                 var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
  28.                 var resultObj:Object = decoder.decodeXML(xmlDoc);
  29.                 return resultObj;
  30.             }
  31.         ]]>
  32.     </mx:Script>
  33.  
  34.     <mx:XML id="xmlDP">
  35.         <root>
  36.             <entry>
  37.                 <font-family>Arial</font-family>
  38.                 <font-size>12</font-size>
  39.                 <font-weight>normal</font-weight>
  40.                 <text-decoration>underline</text-decoration>
  41.                 <text>Hello world!</text>
  42.             </entry>
  43.         </root>
  44.     </mx:XML>
  45.  
  46.     <mx:Panel id="xmlPanel">
  47.         <mx:Text id="txtXML" />
  48.         <mx:ControlBar>
  49.             <mx:Label text="font-family:" />
  50.             <mx:Label id="lblXML" />
  51.         </mx:ControlBar>
  52.     </mx:Panel>
  53.  
  54.     <mx:Panel id="objPanel" height="{xmlPanel.height}">
  55.         <mx:Text id="txtObject" />
  56.         <mx:ControlBar>
  57.             <mx:Label text="font-family:" />
  58.             <mx:Label id="lblObject" />
  59.         </mx:ControlBar>
  60.     </mx:Panel>
  61.  
  62. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Flex | Tags: , , , ,

Search Posts

Archives

Sponsored Ads