private function onDataReady(event:Event):void { _xmlDataArray = buildArray(xmlLoader.xmlData); dispatchEvent(new Event("ARRAY_READY")); } private function buildArray(xml:XML):Array { var xmlAssoc:Array = new Array(); for (var i:uint = 0; i < xml.children().length(); i++) { var xmlNode:XML = xml.children()[i]; xmlAssoc[xmlNode.child("name")] = recursion(xmlNode); } return xmlAssoc; } private function recursion(xml:XML):String { var tempArray:Array = new Array(); var tempObj:Object; for (var i:uint = 0; i < xml.children().length(); i++) { var xmlNode:XML = xml.children()[i]; if (xmlNode.hasComplexContent()) { //Recurssion tempObj = recursion(xmlNode); } else { // Text node tempObj = xmlNode.toString(); } tempArray.push(tempObj); } return tempArray; } }