0
我试图使用简单的XML中的XPath元素来解析XML文档。然而,这下面的脚本(当搜索的last.fm API中的条目“U2”)返回:PHP XML XPath - 停止重复节点
乘客乘客波诺波诺乘客U2和绿日乘客 波诺和U2乐队绿日R.E.M.乘客Bono U2和Green Day R.E.M. INXS
正如你所看到的,有重复节点。有没有办法阻止重复/重复节点显示?
(PHP代码)
$xmlmusic = new SimpleXMLElement($result);
$releases = $xmlmusic->xpath('artist/similar/artist');
foreach ($releases as $artist) {
$artistResult .= $artist->name . PHP_EOL;
echo $artistResult;}
(XML文档)
<?xml version="1.0" encoding="utf-8"?>
<lfm status="ok">
<artist>
<name>U2</name>
<mbid>704acdbb-1415-4782-b0b6-0596b8c55e46</mbid>
<url>http://www.last.fm/music/U2</url>
<image size="small">http://userserve-ak.last.fm/serve/34/107345.jpg</image>
<streamable>1</streamable>
<stats>
<listeners>2613654</listeners>
<playcount>96947986</playcount>
</stats>
<similar>
<artist>
<name>Passengers</name>
<url>http://www.last.fm/music/Passengers</url>
<image size="small">http://userserve-ak.last.fm/serve/34/4826014.jpg</image>
</artist>
它不返回任何结果,所以我尝试了数组的打印: $ xmlmusic =新的SimpleXMLElement($结果); $ releases = $ xmlmusic-> xpath('artist/similar/artist'); $ seen = array();如果(!isset($ seen [$ artist-> name])){ $ US [$ artist-> name] = true; } } print_r($ see); 但是它返回一个空数组? – MattHeywood 2011-12-14 05:18:54