import flash.xml.XMLDocument;
import mx.rpc.xml.SimpleXMLDecoder;
public static function xmlToObject(x:XML):Object{
var xmlStr:String = x.toString();
var xmlDoc:XMLDocument = new XMLDocument(xmlStr);
xmlDoc.ignoreWhite=true;
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
var resultObj:Object = decoder.decodeXML(xmlDoc);
return resultObj;
}
Я использую этот код для преобразования xml в Objects. Тогда ДЕЙСТВИТЕЛЬНО просто использовать xml.
Например, ваш xml будет выглядеть так:
var xml:XML = <Top>
<Component>
<type>Button</type>
<id></id>
<width>50</width>
<height>20</height>
<x>0</x>
<y>0</y>
</Component>
<Component>
<type>Label</type>
<id></id>
<width>30</width>
<height>10</height>
<x>0</x>
<y>0</y>
</Component>
</Top>;
и
var o:Object=xmlToObject(xml);
var top:Object=o.Top;
var componentArrayC:ArrayCollection=top.Component;
for each(var cmp:Object in componentArrayC) {
//You would have these properties:
cmp.type;
cmp.id;
cmp.width;
cmp.height;
cmp.x;
cmp.y;
}