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;
}
}
}