#xml #actionscript-3
#xml #actionscript-3
Вопрос:
Я пытаюсь поместить каждый атрибут из моего XML-файла и сохранить каждый атрибут в объекте, но не могу их получить. Что я делаю не так? Есть 2 других класса, которые тоже загружают изображения, но не важны для моего вопроса.
XML:
<personal>
<person id="1" name="Oprah Winfrey" image="oprah-winfrey.jpg" title="administrator"></person>
<person id="2" name="Zlatan Ibrahimovic" image="zlatan-ibrahimovic.jpg" title="technician"></person>
<person id="3" name="Barack Obama" image="barack-obama.jpg" title="CEO"></person>
</personal>
AS3:
private var _items:Array = new Array();
private var _xmlLoader:URLLoader = new URLLoader();
private var _Loader:Loader;
private var _urlRequest:URLRequest;
private var _xml:XML;
public function Main(){
_xmlLoader.load(new URLRequest("personal.xml"));
_xmlLoader.addEventListener(Event.COMPLETE, onXmlLoadComplete);
}
private function onXmlLoadComplete(e:Event):void{
_xml = new XML(e.target.data);
var _xmlList:XMLList = _xml.person;
for each(var node in _xmlList){
for each(var attribute in node.attributes())
//trace(attribute.name() "::" attribute) //will output each attribute
//trace("********Node End*********")
var obj:Object = attribute;
trace("obj " obj.('image')); //outputs "title" node from xml file
var item:ImageItem = new ImageItem(obj.image,
obj.name,
obj.title);
addChild(item);
_items.push(item);
}
trace("items " _items.length);
}
Ответ №1:
вы очень близки! Вот обновленная версия вашего кода цикла:
xml = new XML(e.target.data);
for each (var node:XML in xml.person) {
var obj:Object = {};
obj.name = node.@name;
obj.image = node.@image;
obj.title = node.@title;
var item:ImageItem = new ImageItem(obj.image, obj.name, obj.title);
...
}
Я надеюсь, что это поможет!