Flex将XML数据转换ArrayList
ph.xml如下:
<?xml version="1.0" encoding="utf-8"?> <data value="XX通讯录"> <user> <bn>办公室</bn> <xm>冯XX</xm> <bg>677598XX</bg> <tel>130760616XX</tel> </user> <user> <bn>销售处</bn> <xm>李XX</xm> <bg>427598XX</bg> <tel>158760616XX</tel> </user> <user> <bn>技术部</bn> <xm>张XX</xm> <bg>427598XX</bg> <tel>137760616XX</tel> </user> <user> <bn>财务部</bn> <xm>孙XX</xm> <bg>522598XX</bg> <tel>133760616XX</tel> </user> </data>
flex实现如下:
<?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"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.collections.ArrayList; import mx.controls.Alert; import mx.rpc.events.ResultEvent; private var d : XML; protected function button1_clickHandler(event:MouseEvent):void { http.send(); } public var arL : ArrayList = new ArrayList(); public var arrC : ArrayCollection = new ArrayCollection(); protected function http_resultHandler(event:ResultEvent):void { d = event.result as XML; arL = getArrayListForXml(d.children()); var i:int; var len:int = arL.length; for(i = 0; i < len; i++) { arrC.addItem({bn:arL.getItemAt(i).bn,xm:arL.getItemAt(i).xm,bg:arL.getItemAt(i).bg,tel:arL.getItemAt(i).tel}); } dataGrid1.dataProvider = arrC; } //XML转换成ArrayList private function getArrayListForXml(data:XMLList):ArrayList { var arrList : ArrayList = new ArrayList(); if(data != null) { for(var i:int = 0; i < data.length(); i++) { var obj : Object = new Object(); for(var j:int = 0; j < data[i].children().length(); j++) { var dataColoum : String = data[i].children()[j].localName(); obj[dataColoum] = data[i].children()[j].toString(); } arrList.addItem(obj); } } return arrList; } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:HTTPService id="http" url="ph.xml" resultFormat="e4x" result="http_resultHandler(event)"> </s:HTTPService> </fx:Declarations> <mx:DataGrid x="37" y="36" width="358" height="193" id="dataGrid1"> <mx:columns> <mx:DataGridColumn headerText="部门名称" dataField="bn"/> <mx:DataGridColumn headerText="姓名" dataField="xm"/> <mx:DataGridColumn headerText="办公电话" dataField="bg"/> <mx:DataGridColumn headerText="手机号码" dataField="tel"/> </mx:columns> </mx:DataGrid> <s:Button x="430" y="36" label="导入数据" click="button1_clickHandler(event)"/> </s:Application>
效果如下:
相关推荐
yangkang 2020-11-09
lbyd0 2020-11-17
sushuanglei 2020-11-12
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
lizhengjava 2020-11-13
星月情缘 2020-11-13
huangxiaoyun00 2020-11-13
luyong0 2020-11-08
腾讯soso团队 2020-11-06
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gaobudong 2020-11-04
wwwjun 2020-11-02
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30