嘿,我有一个simpleXMLElement文档,它具有与艺术家专辑有关的数据数组。
下面是该XML的摘录
[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[num] => 3
[type] => artist
)
[title] => DJ Tiësto
[uri] => http://www.discogs.com/artist/DJ+Ti%C3%ABsto
[summary] => DJ Tiësto Tijs Michiel Verwest Dutch trance DJ & producer.
在这个XML文档中有多种不同类型的信息,从艺术家信息到专辑标题。我想提取这些数据的某些部分,并将它们反射出来。例如,我想提取具有定义为艺术家的[类型]的数组条目的摘要。我猜我会使用foreach循环,遍历所有条目并检查这是否为真?这样做对吗?
我为我混乱的解释道歉
---- EDIT ----
下面是获取数据的PHP代码-<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.discogs.com/search?type=all&" .
"q=DJ+Tiësto&" .
"f=xml&" .
"api_key=<key>");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
$result = curl_exec($curl);
curl_close($curl);
$xmlmusic = new SimpleXMLElement($result,NULL,true);
foreach ($xmlmusic as $xm)
{
$attrs = $xm->attributes();
if($attrs["type"] == "title")
echo $xm->summary."'n";
}
?>
好吧,虽然这里可能的重复是一个基于您的文件的非常简单的例子。
我想你有这样的东西:
<music>
<dj num="3" type="artist">
<title>DJ Tiesto</title>
<uri>http://www.discogs.com/artist/DJ+Ti%C3%ABsto</uri>
<summary>DJ Tiësto Tijs Michiel Verwest Dutch trance DJ producer.</summary>
</dj>
<dj num="4" type="artist">
<title>title</title>
<uri>url</uri>
<summary>summary</summary>
</dj>
为了提取属性类型为"title"的摘要,如您所要求的,您需要这样做:
<?php
$result = file_get_contents("http://www.discogs.com/search?type=all&" .
"q=DJ+Tiësto&" .
"f=xml&" .
"api_key=<key>");
$xmlmusic = new SimpleXMLElement($result, NULL, false);
//print_r($xmlmusic);
foreach ($xmlmusic as $xm)
{
$attrs = $xm->attributes();
if($attrs["type"] == "title")
echo $xm->summary."'n";
}
?>
如果需要获取属性,可以使用下面的示例
$Attributes = $Node->attributes();