package laan.xml { public class PlistParser { public function PlistParser() { } public static function parsePlist ( xmlPlist : XML ) : XML { var plist : XML = new XML(); for ( var i:int = 0; i < xmlPlist.children().length(); i++ ) { //var prop : XML = new XML(); if ( xmlPlist.children()[i].name() == "array" ) { //prop.setName( xmlDict.children()[i].toString() ); //plist.appendChild( parseArrayOfDict( xmlPlist.children()[i] )); parseArrayOfDict( xmlPlist.children()[i] , plist ); } else if ( xmlPlist.children()[i].name() == "dict" ) { plist.appendChild( parseDictionary( xmlPlist.children()[i] )); } } return plist; } public static function parseArrayOfDict( dictArr : XML , xmltoAdd : XML ) : void { //var arrXml : XML = new XML(); for each ( var button:XML in dictArr.dict ) { var newXml : XML = parseDictionary( button ); xmltoAdd.appendChild( newXml ); } } public static function parseArrayOfDict2( dictArr : XML ) : XML { var arrXml : XML = new XML(); for each ( var button:XML in dictArr.dict ) { var newXml : XML = parseDictionary( button ); arrXml.appendChild( newXml ); } return arrXml; } public static function parseDictionary( xmlDict : XML ) : XML { var parsedXml : XML = new XML(); for ( var i:int = 0; i < xmlDict.children().length(); i++ ) { var prop : XML = new XML(); if ( xmlDict.children()[i].name() == "key" ) { prop.setName( xmlDict.children()[i].toString() ); } i++ var type : String = xmlDict.children()[i].name(); if ( type == "string" ) { prop.setChildren( xmlDict.children()[i].toString() ); } else if ( type == "array" ) { //prop.setChildren( ); parseArrayOfDict( xmlDict.children()[i] , prop ); } else if ( type == "integer" ) { prop.setChildren( int( xmlDict.children()[i] ) ) ; } parsedXml.appendChild( prop ); } return parsedXml; } } }