在本实例中将从一个XML对象通过层层转换最终变为ArrayCollection对象 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <!--[CDATA[ import mx.collections.XMLListCollection; import mx.collections.ArrayCollection; import mx.controls.Alert; public var myData:XML= <tables> <table> <name>TRP_USERS</name> <statement>CREATE TABLE IF NOT EXISTS TRP_USERS (USER_ID INTEGER PRIMARY KEY AUTOINCREMENT,USER_NAME TEXT,PASSWORD TEXT,CREATION_DATE DATE)</statement> </table> <table> <name>TRP_PROJECTS</name> <statement>CREATE TABLE IF NOT EXISTS TRP_EMPLOYEE_PROJECTS (EMPLOYEE_PROJECT_ID INTEGER PRIMARY KEY AUTOINCREMENT,USER_ID INTEGER,EMPLOYEE_NUMBER TEXT,LEVEL_CODE TEXT,PROJECT_NAME TEXT,PROJECT_MANAGER TEXT,START_DATE DATE,SCHEDULE_END_DATE DATE,TECH_DIRECTOR_NAME TEXT,TECH_LEADER_NAME TEXT,TWO_WEEK_OUT TEXT,MEMO TEXT,UPLOAD_FLAG TEXT,CREATION_DATE DATE)</statement> </table> </tables>; private var xmlList:XMLList=new XMLList(); private var xmlListCollection:XMLListCollection=new XMLListCollection(); private var provider:ArrayCollection; private function init():void { xmlList=myData.elements("table"); xmlListCollection.source=xmlList; provider=new ArrayCollection(xmlListCollection.toArray()); grid.dataProvider=provider; } ]]--> </mx:Script> <mx:DataGrid x="221" y="65" width="742" height="294" id="grid"> <mx:columns> <mx:DataGridColumn headerText="Name" dataField="name"/> <mx:DataGridColumn headerText="Sql" dataField="statement"/> </mx:columns> </mx:DataGrid> </mx:Application> 运行结果: