`
sungang_1120
  • 浏览: 322209 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

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>

 

效果如下:



 

  • 大小: 24.9 KB
分享到:
评论

相关推荐

    Flex类图和与Java交互时类型转换对照

    - Java向Flex发送数据时,Java的数字类型会被转换为Flex的Number,字符串和布尔值保持不变,日期对象转换为Flex的Date,ArrayList转换为Flex的Array,Map转换为Flex的Object。 4. AMF(Action Message Format): ...

    Flex数据访问:WebService

    在Flex端,虽然DataTable对象本身不是原生的Flex类型,但可以将其转换为适合处理的Flex数据结构,例如ArrayCollection。通过解析返回的XML数据,我们可以将DataTable内容呈现在Flex的数据显示组件上。 总结来说,...

    Flex连接数据库三种方法

    - 调用RemoteObject的方法,当服务端返回数据后,可以通过事件监听器处理数据,将ArrayList转换为Flex能识别的数据结构,如ArrayCollection。 4. **展示数据**: - 将从服务端获取的公告数据绑定到Flex界面组件,...

    java和flex数据对于关系

    在跨平台开发中,Java与Flex作为两种广泛应用的技术栈,它们之间的数据交互与转换是开发者必须面对的问题之一。本文旨在梳理和总结Java对象与Flex对象之间的对应关系,为相关领域的开发者提供参考。 #### Java与...

    Flex调用webService

    `XMLList`是Flex中的XML数据容器,可以转换为`ArrayList`以适应Flex的数据模型。 4. String数据解析: 对于简单的字符串返回,处理起来相当直接。假设有一个返回字符串的`getString()`方法: ```actionscript ...

    Flex连接数据库的三种方法

    当数据返回时,可以遍历接收到的ArrayList,将每个NoticeInfo对象转换为Flex中的数据模型,显示在用户界面上。 通过以上步骤,我们可以利用Flex的RemoteObject与数据库进行高效、便捷的交互。这种方式不仅适用于...

    flex 树状图

    例如,你可以用Spring、Hibernate等技术处理后端业务逻辑,然后通过BlazeDS将数据转换成AMF格式,传送给Flex前端。 此外,Flex的Tree控件还支持事件监听,例如点击节点时触发事件。我们可以通过添加Event听众来实现...

    Flex连接数据库三种方法.docx

    如果返回`ArrayList`,在Flex中它将被转换为`ArrayCollection`。 5. **在Flex中配置RemoteObject** - 在Flex项目中创建一个RemoteObject,指定其目的地为Java服务类(例如,`DataServiceImpl`)。 - 定义方法调...

    Flex面试试题(By稻田).doc

    在Flex面试中,考察的主要是开发者对Adobe Flex...以上是对Flex面试题目的详细解析,涵盖了类访问修饰符、类型转换、样式设置、布局管理、事件处理、XML数据绑定、界面构建等多个方面,展示了Flex开发所需的核心技能。

    Flex+Java连接SQLServer.pdf

    注意,从Java的ArrayList传递到Flex时,它会被自动转换为ArrayCollection,因此在Flex中可以方便地处理这些数据。 通过以上步骤,我们就成功实现了Flex与Java、SQLServer之间的数据交互。这种方式允许Flex应用程序...

    Flex连接数据库三种方法.doc

    - 服务返回的数据会被自动转换成Flex客户端的ActionScript对象,可以直接在Flex界面中使用。 总结来说,Flex通过HttpService、WebService和RemoteObject这三种方式间接连接数据库,它们各有优缺点,适用于不同的...

    ArcGIS for Flex开发中Graphic的attributes解析

    4. **与DataGrid绑定**:最后,我们将解析后的ArrayList对象设置为DataGrid的数据提供者,这样DataGrid就会根据提供的数据动态生成行。 ```actionscript dgDetail.dataProvider = list; ``` 通过以上步骤,我们...

    java调用openamf实例,把取回的结果转换成list或bean.

    总的来说,通过Java调用OpenAMF实例并将其结果转换为List或Bean,可以帮助我们更好地集成Flex或ActionScript 3应用,提升客户端与服务器之间的数据交互效率。这个过程涉及到对AMF协议的理解、OpenAMF库的使用以及...

    blazeds资料文件

    文件"blazeds与java类型对应.pdf"和"As与Java类型对应表.pdf"很可能详细阐述了BlazDS如何将Flex中的ActionScript数据类型映射到Java的数据类型。ActionScript与Java之间的类型映射是BlazDS能够无缝集成Flex和Java的...

    FluorineFxAMF

    例如,它将Flex的Date对象映射到.NET的DateTime,将Array对象映射到ArrayList等。 4. **服务暴露**:在.NET端,开发者可以使用FluorineFx来暴露.NET类、方法和服务,使其可以被Flex客户端调用。这通常通过配置文件...

    XFire发布WebService方法如果返回的是LIST的处理

    对于返回List的响应,客户端需要能够解析XML响应,将其转换回List对象。XFire的XMLBeans或JAXB支持可以帮助完成这项任务。 ```java ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory....

    简单的css+div 的jsp示例

    4. 结果处理:将查询结果集转换为Java对象(如ArrayList或Bean),便于在前端展示。 接下来是CSS,它是用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档样式的样式表语言。在这个示例中,CSS将用于美化和...

    顶级IT公司面试题

    - **编码**:将数据转换为特定格式的过程。 - **解码**:将编码后的数据恢复为原始形式。 - **应用场景**:网络传输、数据存储等。 #### 25. HTTP与HTTPS协议 - **HTTP**:超文本传输协议,不加密。 - **HTTPS**:...

Global site tag (gtag.js) - Google Analytics