2011-04-12 3 views
0

xml 파일의 각 속성을 저장하고 각 속성을 객체에 저장하려고하지만 접근 할 수 없지만 무엇이 잘못 되었습니까? 이미지를로드하는 다른 두 개의 클래스도 있지만 내 질문에는 중요하지 않습니다. 모든 답변에 대한 감사xml에있는 속성에 도달하는 데 문제가 있습니다.

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


    } 

답변

0

당신의 아주 가까운! 루프 코드의 업데이트 된 버전은 다음과 같습니다.

xml = new XML(e.target.data); 

for each (var node:XML in xml.person) { 
    var obj:Object = {}; 
    obj.name = [email protected]; 
    obj.image = [email protected]; 
    obj.title = [email protected]; 

    var item:ImageItem = new ImageItem(obj.image, obj.name, obj.title); 

    ... 
} 

희망이 있습니다.

+0

했습니다! 대단히 감사합니다! =) – EmKe

관련 문제