您的位置:首页 > 其它

FLEX实践—XML、XMLList、XMLListCollection、ArrayCollection关系转换

2009-10-20 14:28 351 查看
在本实例中将从一个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>


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: