Php 我需要提取http查询生成的xml结果的值

Php 我需要提取http查询生成的xml结果的值,php,xml,variables,extract,Php,Xml,Variables,Extract,我真的需要一些人帮我做这件事,它快把我逼疯了 我需要从http查询生成的xml文件中提取值 我会解释 我需要向此行添加一个变量: 我可以用php进行一些变量编辑 这将生成如下所示的xml文件: <lfm status="ok"> <results for="rihanna"> <opensearch:Query role="request" searchTerms="rihanna" startPage="1"/>

我真的需要一些人帮我做这件事,它快把我逼疯了

我需要从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>

3821
0
30
蕾哈娜
3236233
73e5e69d-3554-40d8-8516-00cb38737a1c
http://www.last.fm/music/Rihanna
1.
http://userserve-ak.last.fm/serve/34/71057304.png
http://userserve-ak.last.fm/serve/64/71057304.png
http://userserve-ak.last.fm/serve/126/71057304.png
http://userserve-ak.last.fm/serve/252/71057304.png
所以文件还在继续


从原始查询生成的xml输出中,我需要提取
中的URL。您可以查看php中的URL以获得特定的图像链接。。。假设您在
$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;
            }
        }
    }
}

您可以直接从URL获取XML,而不用加载字符串。

我使用Last.fm提要制作应用程序,并获取我使用的图像:

$imagexml = simplexml_load_file($imageurl) or $error = "Feed Not Loading";
$album = $imagexml->album;
$image = (string) $album->image[2];

$imageurl是Last.FM的url,$image将为您提供该图像的url

您需要将结果字符串放入
SimpleXML
中,以使您的生活更轻松。@peter谢谢,我尝试了以下内容,但没有返回任何内容,请原谅我缺乏知识…'编码“
var\u dump()
变量以查看是否返回任何内容。同时,回显
$album
$imagexml
不会显示任何内容,因为它们是对象