Loop not working when I try to traverse a Simple XML Object
I'm trying to loop through the results from the Last.fm API but it's not working.
function get_url($url){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
$xml = get_url('http://ws.audioscrobbler.com/2.0/?method=album.search&album=kid%20a&api_key=b25b959554ed76058ac220b7b2e0a026');
$doc = new SimpleXMLElement($xml);
$albums = $doc->results->albummatches;
foreach($albums as $album){
echo $album->album->name;
}
This just shows the first album开发者_如何转开发. If I change the code within the foreach loop to echo $album->name;
it shows nothing at all.
What am I doing wrong?
What about using this :
$albums = $doc->results->albummatches;
foreach($albums->album as $album){
echo $album->name . '<br />';
}
This seems to get the list of albums names.
To make things short, instead of looping over $doc->results->albummatches
, you have to loop over $doc->results->albummatches->album
.
And, then, inside the loop, $album
corresponds to the current album ; so, you can use $album->name
精彩评论