2011-12-07 138 views
0

我試圖通過httpservice的結果循環,它是xml。循環通過xml結果

這是我如何嘗試這樣做的,但這不起作用。我錯過了什麼?

protected function getArtistsSucces(event:ResultEvent):void 
    { 
     var artistList:XMLList = XMLList(event.result); 
     var artistXML:XML; 
     for each(artistXML in artistList.artists) 
     { 
      var artistName:String = artistXML.artist.name; 
      var artistPic:String = artistXML.artist.image.(@size=="large"); 
      insertArtistUrl = "http://localhost:8888/flexapp/insert_artist.php?name=" + artistName + "&pic=" + artistPic 
           + "&userid=" + userId; 
      insertArtistService.send(); 
     } 
    } 

,這是結果在調試器:

result from debugger

所有節點: all nodes

+0

您能否提供一個xml樣本? – Taurayi

+0

創建手錶表達式'artistList.artists',結果會是什麼? –

回答

0

我忘記了

resultFormat="e4x" 

添加到我的HTTPService。添加這個解決了這個問題。

0

你或許應該通過artistList.artists.artist迭代這將代表artist節點列表開始(而不是其父節點)。

0

下面的代碼可能會解決問題。但是如果問題仍然存在,請嘗試追蹤所獲得的對象。我在線上放了一些痕跡。 GL

protected function getArtistsSucces(event:ResultEvent):void 
    { 
     var artistList:XMLList = XMLList(event.result); 
     var artistXML:XML; 
     for each(artistXML in artistList.artists.artist) 
     // i m not sure about "artistList.artists.artist" here. 
     //Cant check it atm, need your xml data. 
     { 
      //trace(artistXML); // check which object comes here. 

      var artistName:String = artistXML.name; 
      var artistPic:String = artistXML.image.(@size=="large"); 
      insertArtistUrl = "http://localhost:8888/flexapp/insert_artist.php?name=" + artistName + "&pic=" + artistPic 
           + "&userid=" + userId; 
      insertArtistService.send(); 
     } 
    }