IT::Flash::XML::XML2Object

Jul 22, 2005 12:33

FLASH::AS функция, которая из XML делает массив с объектами
вчера, все же посидел и сделал


//XML PARSER XML2Object >
function XML2Object(_XML) {
var _XML:XML = _XML;
_XML.ignoreWhite = true;
var _nodeArray:Array = new Array();
var _nodes:Array = _XML.childNodes;
var _nodesLength:Number = _nodes.length;
for (var i = 0; i var _childNode:XMLNode = _XML.childNodes[i];
var _objectForArray:Object = new Object();
var _tmpObject:Object = new Object();
if (_childNode.nodeType == 1) {
for (_attribute in _childNode.attributes) {
_tmpObject[_attribute] = _childNode.attributes[_attribute];
}
_tmpObject["_nodes"] = XML2Object(_childNode);
_objectForArray[_childNode.nodeName] = _tmpObject;
} else if (_childNode.nodeType == 3) {
_tmpObject["_nodes"] = _childNode.nodeValue;
_objectForArray = _tmpObject;
}
_nodeArray.push(_objectForArray);
}
return _nodeArray;
}
//XML PARSER XML2Object <

возвращает Array с объектами

использование:

var loXML:XML = new XML();
loXML.ignoreWhite = true;
loXML.load("file_name.xml");
loXML.onLoad = function() {
var array_from_xml:Array = XML2Object(loXML);
trace(object2string(array_from_xml));
};

дальше к объектам массива можно обращаться, к слову, вот так:
array_from_xml[0].country._nodes[0].regions._nodes.[0].region._nodes[0].areas._nodes[0].settlement.name

используйте функцию object2string для просмотра возвращаемого массива, что бы понять структуру. дальше будет проще:)

см. функция XMLparser
см. функция object2string

©

it, flash, программирование

Previous post Next post
Up