【发布时间】:2011-10-19 11:13:50
【问题描述】:
下面是我的代码:
foreach(simplexml_load_file('http://www.bbc.co.uk/radio1/playlist.xml')->item as $link){
$linked = $link->artist;
$xml_data = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=' . $linked . '&api_key=b25b959554ed76058ac220b7b2e0a026');
$xml = new SimpleXMLElement($xml_data);
foreach($xml->images as $test){
$new = $test->image->sizes->size[4];
echo "<img src='$new'>";
?><br /><?php
}}
?>
这确实有效,但它只显示许多记录中的一条,它显示 XML 文件中的第一条记录。我希望它显示所有记录。
我想通过这段代码实现的是:
我有一个 xml 文件,我从中获取艺术家姓名,然后我列出所有艺术家姓名并将它们插入到一个链接中,因此该链接是根据他们生成的艺术家姓名动态创建的。然后我想获取动态创建的链接,这是另一个 xml 文件并解析该文件以获取作为图像链接的大小节点(图像是艺术家的)。然后我想将该图像链接回显到显示图像的图像标签中。
它部分工作,但正如我之前所说,它只显示一条记录,而不是 xml 文件中的所有记录。
【问题讨论】:
-
请注意您在每次执行此脚本时产生了多少网络流量,并相应地进行缓存。如果您一天执行的次数过多或次数过多,您很可能会受到速率限制(而且 API 速率限制通常比人们想象的要低很多)。
-
$links不是已经是 xml 元素了吗?您不需要每次都从中创建新的 xml 文档。只需输入$links->images->image->sizes->size即可。 -
它只用于测试,所以不会产生太多流量,应该只有我和其他几个人
标签: php xml xml-parsing