2011-12-07 140 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(); 
     } 
    }