PHP XML XPath-停止重复节点
我正在尝试使用简单XML中的XPath元素解析XML文档。但是,下面的脚本(在last.fm API中搜索条目“U2”时)返回: 乘客Bono乘客Bono U2和绿日乘客 博诺U2和绿日R.E.M.乘客博诺U2和绿日R.E.M。 INXS 如您所见,存在重复节点。是否有一种方法可以阻止显示重复/重复的节点 (PHP代码) (XML文档)PHP XML XPath-停止重复节点,php,xml,xpath,nodes,last.fm,Php,Xml,Xpath,Nodes,Last.fm,我正在尝试使用简单XML中的XPath元素解析XML文档。但是,下面的脚本(在last.fm API中搜索条目“U2”时)返回: 乘客Bono乘客Bono U2和绿日乘客 博诺U2和绿日R.E.M.乘客博诺U2和绿日R.E.M。 INXS 如您所见,存在重复节点。是否有一种方法可以阻止显示重复/重复的节点 (PHP代码) (XML文档) U2 704acdbb-1415-4782-b0b6-0596b8c55e46 http://www.last.fm/music/U2 http://user
U2
704acdbb-1415-4782-b0b6-0596b8c55e46
http://www.last.fm/music/U2
http://userserve-ak.last.fm/serve/34/107345.jpg
1.
2613654
96947986
乘客
http://www.last.fm/music/Passengers
http://userserve-ak.last.fm/serve/34/4826014.jpg
我假设您的XML片段只是完整结果的一小部分,所以
您需要修改foreach循环,以检查当前正在处理的艺术家之前是否见过。最简单的方法是使用数组:
$seen = array();
foreach ($releases as $artist) {
if (!isset($seen[$artist->name])) {
$seen[$artist->name] = true;
}
}
循环完成后,您将获得一个很好的阵列,每个艺术家都是$seen中的一个键。要复制简单的字符串连接,只需内爆/回显:
echo implode(array_keys(', ', $seen));
它没有返回任何结果,所以我尝试打印数组:$xmlmusic=newsimplexmlement($result)$releases=$xmlmusic->xpath('artist/similor/artist')$seen=数组();foreach($artist发行){if(!isset($seen[$artist->name]){$seen[$artist->name]=true;}}}print\r($seen);但是它返回一个空数组?
$seen = array();
foreach ($releases as $artist) {
if (!isset($seen[$artist->name])) {
$seen[$artist->name] = true;
}
}
echo implode(array_keys(', ', $seen));