Flex4中动态解析XML数据并转换为ArrayCollection

本文介绍在Flex4中手动解析XML数据的方法,特别是在处理包含日期类型数据的XML文件时。通过示例代码展示了如何遍历XML节点及属性,并将其转换为ArrayCollection对象。

在Flex4中处理xml数据,为了方便,一般采用SimpleXMLDecoder直接转换为ArrayCollection

但有时为了处理xml中的数据,特别是xml文件中包含日期型数据(Date)时,就需要自己解析XML并进行相应的处理

<?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" 
			   xmlns:amcharts="http://www.amcharts.com/com_internal"
			   backgroundColor="#FFFFFF"
			   width="100%" height="100%"
			   initialize="initializeHandler(event)">
	
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			
			
			private var chartData:ArrayCollection = new ArrayCollection();

			protected function initializeHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				var myXML:XML = <areas><area state="广东省" p="1">广州</area><area state="湖北省" p="2">武汉</area></areas>;
						
				// 遍历子节点
				var rcdNum:int = myXML.child("area").length();   
				for( var i:int = 0; i < rcdNum; i++ )  					
				{
					var _item:Object = new Object();
					
					// 遍历属性
					var attNum:int = myXML.area[i].attributes().length();					
					for (var j:int=0; j<attNum; j++)
					{
						var _attName:String = myXML.area[i].attributes()[j].name();
						var _attValue:String = myXML.area[i].attribute(_attName);
					
						// 设置Object属性
						_item[_attName] = _attValue;
					}  
					
					// 添加到ArrayCollection中
					chartData.addItem(_item);
				}  			
			}

		]]>
	</fx:Script>
	
</s:Application>


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值