我真的能帮上这个,这让我很生气!
我需要从http查询生成的xml文件中提取值...
我会解释......
我需要在这一行添加一个变量:
我可以用php中的一些变量编辑来完成
这将生成一个xml文件,如下所示:
<lfm status="ok">
<results for="rihanna">
<opensearch:Query role="request" searchTerms="rihanna" startPage="1"/>
<opensearch:totalResults>3821</opensearch:totalResults>
<opensearch:startIndex>0</opensearch:startIndex>
<opensearch:itemsPerPage>30</opensearch:itemsPerPage>
<artistmatches><artist><name>Rihanna</name>
<listeners>3236233</listeners>
<mbid>73e5e69d-3554-40d8-8516-00cb38737a1c</mbid>
<url>http://www.last.fm/music/Rihanna</url>
<streamable>1</streamable>
<image size="small">http://userserve-ak.last.fm/serve/34/71057304.png</image>
<image size="medium">http://userserve-ak.last.fm/serve/64/71057304.png</image>
<image size="large">http://userserve-ak.last.fm/serve/126/71057304.png</image>
<image size="extralarge">http://userserve-ak.last.fm/serve/252/71057304.png</image>
所以文件继续......
从我原始查询生成的xml输出中,我需要在<image size="medium"
中提取URL并将其放入另一个变量...
对不起一个基本问题(或者可能是一个很长的答案),但我真的根本不知道如何去做这个......
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
您可以查看php中的XPATH function以获取该特定图片链接... php docs足以帮助您...
答案 1 :(得分:0)
假设您在$str
中有XML字符串:
$xmlObj = simplexml_load_string($str);
foreach($xmlObj->results as $result)
{
foreach($result->artistmatches->artist as $artist)
{
foreach($artist->image as $image)
{
if($image->attributes()->size == 'medium')
{
echo 'size medium: ' . (string)$image;
}
}
}
}
您可以使用simplexml_load_file()直接从网址抓取XML,而不是加载字符串。
答案 2 :(得分:0)
我为我制作的应用使用Last.fm Feed并获取我使用的图片:
$imagexml = simplexml_load_file($imageurl) or $error = "Feed Not Loading";
$album = $imagexml->album;
$image = (string) $album->image[2];
$ imageurl是Last.FM的网址,$ image会显示该图片的网址