получился такой класс:

Код:
class XMLParser {
public var XMLArr:Array = new Array();
function XMLParser(XMLData) {
trace("XMLParser created");
this.Parse(XMLData.firstChild,this);
}
function Parse(node, nodeParent) {
while (node != null) {
if (node.nodeType !== 3) {
nodeParent[node.nodeName] = new Object();
if (node.hasChildNodes()) {
this.Parse(node.firstChild,nodeParent[node.nodeName]);
}
} else {
nodeParent.value = node.nodeValue;
}
for (var attrib in node.attributes) {
if (nodeParent[node.nodeName]["attributes"]==undefined) {
nodeParent[node.nodeName]["attributes"] = new Object();
}
if (nodeParent[node.nodeName].attributes[attrib]==undefined) {
nodeParent[node.nodeName].attributes[attrib] = new Object();
}
nodeParent[node.nodeName].attributes[attrib] = node.attributes[attrib];
trace(node.nodeName+"== "+attrib+' = '+node.attributes[attrib]);
}
node = node.nextSibling;
}
return true;
}
}
Долго я с ним парился из-за проблем с дебаггером.
Тут всё делается в лоб, может быть можно сделать более красиво?