Не изобретайте велосипед, гляньте на класс SimpleXMLEncoder, вполне способен справится с Вашей задачей.

Код AS3:
private function objectToXML(object:Object, rootNode:String = "root"):XML
{
import mx.rpc.xml.SimpleXMLEncoder;
var xmlDocument:XMLDocument = new XMLDocument();
var xmlEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
xmlEncoder.encodeValue(object, new QName(rootNode), xmlDocument);
return new XML(xmlDocument.toString());
}
Правда в чистом виде он тащит за собой около 20Кб флексовых классов, но это не проблема, я когда то делал из него независимую версию, вышло что то около 5Кб по итогу. Если нужно попробую отрыть и прикреплю тут.