AlexSol
23.03.2007, 21:53
задача такая: разобрать xml-файл и сообщить, что разбор закончен. С разбором проблем нет, ну и сообщение о завершение разбора приходит. Вопрос в том, насколько грамотно сделано сообщение об окончание разбора - может как-то проще можно?
класс:
class xmlObj extends XML {
private var _url:String;
public var node1:Array;
public var node2:Array;
/////
private var dispatchEvent:Function;
public var addEventListener, removeEventListener:Function;
function xmlObj() {
node1 = new Array();
node2 = new Array();
this.ignoreWhite = true;
this.onLoad = function(success:Boolean) {
myparseXML(this);
};
////
EventDispatcher.initialize(this);
this.addEventListener('onParse', this);
dispatchEvent({type:'onParse'});
}
public function onParse() {
}
private function myparseXML(xml:XML) {
var node:XMLNode = xml.firstChild;
nodeToObject(node, node1);
var node:XMLNode = xml.firstChild.firstChild;
nodeToObject(node, node2);
dispatchEvent({type:'onParse'});
}
private function nodeToObject(node:XMLNode, obgect:Array) {
var attr;
for (attr in node.attributes) {
obgect[attr] = node.attributes[attr];
}
}
public function get getNode1():Array {
return node1;
}
}
вызов:
import xmlObj;
var myXML:xmlObj = new xmlObj();
myXML.load("http://www.testphp.ru/draw/reply.xml");
myXML.onParse = function() {
var arr:Array = this.getNode1;
trace(arr['status']);
};
файл xml
<?xml version="1.0" encoding="UTF-8"?><reply status="ok" mode="image"><image url="image_url"></image></reply>
класс:
class xmlObj extends XML {
private var _url:String;
public var node1:Array;
public var node2:Array;
/////
private var dispatchEvent:Function;
public var addEventListener, removeEventListener:Function;
function xmlObj() {
node1 = new Array();
node2 = new Array();
this.ignoreWhite = true;
this.onLoad = function(success:Boolean) {
myparseXML(this);
};
////
EventDispatcher.initialize(this);
this.addEventListener('onParse', this);
dispatchEvent({type:'onParse'});
}
public function onParse() {
}
private function myparseXML(xml:XML) {
var node:XMLNode = xml.firstChild;
nodeToObject(node, node1);
var node:XMLNode = xml.firstChild.firstChild;
nodeToObject(node, node2);
dispatchEvent({type:'onParse'});
}
private function nodeToObject(node:XMLNode, obgect:Array) {
var attr;
for (attr in node.attributes) {
obgect[attr] = node.attributes[attr];
}
}
public function get getNode1():Array {
return node1;
}
}
вызов:
import xmlObj;
var myXML:xmlObj = new xmlObj();
myXML.load("http://www.testphp.ru/draw/reply.xml");
myXML.onParse = function() {
var arr:Array = this.getNode1;
trace(arr['status']);
};
файл xml
<?xml version="1.0" encoding="UTF-8"?><reply status="ok" mode="image"><image url="image_url"></image></reply>