Flex 将xml转成对象
发布时间:2020-12-15 03:46:16 所属栏目:百科 来源:网络整理
导读:刚刚开始学Flex最近有个项目用到了将xml结构用对象来存储起来下面就将我学到的东西贴出来和大家一起分享下不足之处希望多多指点指点^_^ 本文所用到的xml: ?xml version="1.0" encoding="UTF-8"?data value="test"data1 value="test01"id value="test02"/nam
刚刚开始学Flex最近有个项目用到了将xml结构用对象来存储起来下面就将我学到的东西贴出来和大家一起分享下不足之处希望多多指点指点^_^ 本文所用到的xml: <?xml version="1.0" encoding="UTF-8"?> <data value="test"> <data1 value="test01"> <id value="test02"/> <name value="test03"/> <des value="test04"/> </data1> <data2 value="test05"> <id value="test06"/> <name value="test07"/> <des value="test08"/> </data2> <data3 value="test09"> <id value="test10"/> <name value="test11"/> <des value="test12"/> </data3> <data4 value="test13"> <id value="test14"/> <name value="test15"/> <des value="test16"/> </data4> </data>
package test { public class GCNode { public function GCNode() { } public var name:String; public var pNode:GCNode; public var children:Vector.<GCNode>; } }
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler()"> <s:layout> <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <fx:Declarations> <!--url存放xml文件的地址用来填充树 --> <s:HTTPService id="hs" url="data/data2.xml" resultFormat="e4x" result="hs_resultHandler(event)"/> </fx:Declarations> <fx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; [Bindable] private var d:XML; protected function application1_creationCompleteHandler():void { hs.send(); } public function initTree(pp:XML,Node:GCNode):void { var tempList:XMLList=pp.children(); Node.name=pp.@value; //如果该节点没有子节点就附个new的list否侧会报空对象 if(!Node.children){ Node.children=new Vector.<GCNode>(); } for each(var xml:XML in tempList) { var tempNode:GCNode=new GCNode(); tempNode.name=xml.@value; tempNode.pNode=Node; Node.children.push(tempNode); initTree(xml,tempNode) } } //回调函数 protected function hs_resultHandler(event:ResultEvent):void { d = event.result as XML; var treeNode:GCNode=new GCNode(); //递归填充treeNode initTree(d,treeNode); trace(treeNode.name); } ]]> </fx:Script> </s:Application>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |