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事件,并将得到的对象数组列表作为事件对象的属性传递。
本文介绍了一个基于ActionScript的XML解析器类,该类继承自EventDispatcher并利用URLLoader加载XML文件。解析完成后,它会派发PARSE事件并将解析的数据作为事件属性传递。
4150

被折叠的 条评论
为什么被折叠?



