将属性的XML解析成对象数组列表

在AS3中,XML类基于E4X标准,我们可以直接将元素的XML解析成对象数组列表,然而元素的XML一般比较大,出于效率或是二次的开发原因,很多时候会采用属性的XML。属性的XML需要重新解析成对象数组列表,为了方便工作,我特意写了一个类。

源码如下:

package utils {
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.net.URLLoader;		
	/**
	 * @author Flying
	 */
	public class XMLParser extends EventDispatcher {
		public var parsedData : Array;
		public static  const PARSE : String = "parse";
		/**
		 * @param loader 加载器
		 */
		public function XMLParser(loader : URLLoader) {
			loader.addEventListener(Event.COMPLETE, completeHandler);
		}
		public function completeHandler(event : Event) : void {
			var item_xmlList : XMLList = XML(URLLoader(event.target).data).children();
			var xmlObj_array : Array = new Array();
			var item_xml : XML;
			for each (item_xml in item_xmlList) {
				var tempObj : Object = new Object();
				var node : XML;
				for each (node in item_xml.attributes()) {
					//用localName方法获取XML对象的限定名称
					var obj : Object = node.localName();
					tempObj[obj] = item_xml.@[obj];
				}
				xmlObj_array.push(tempObj);
			}
			parsedData = xmlObj_array;
			dispatchEvent(new Event(XMLParser.PARSE));
		}
	}
}

此类基于EventDispatcher类,构造时以URLLoader对象作为参数,当XML解析完后会派发PARSE事件,并将得到的对象数组列表作为事件对象的属性传递。

上一篇上一篇: 将Flex Datagrid导出到Excel
下一篇下一篇: 带有提示文本及进度条的纯AS加载类
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Actionscript3 Class XML
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭