将属性的XML解析成对象数组列表
作者:Flying 日期:2008-04-25
在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 | 查看次数: -
发表评论

