我正在使用SimpleXML来解析rss feed,如果SimpleXML返回的数组中的属性与我的字符串show data匹配。但有些项目在XML文件中重复,我想只使用它们的第一次出现。但我得到了所有重复的结果。
foreach($feed->city as $city){
if(in_array($city['Name'], $cities)){
echo $city['Name'].'<br />';
}
}
其中$ feed-&gt; city是我的XML数据,$ cities是我的数组。
答案 0 :(得分:1)
我会使用php的Xpath库来做到这一点。 Xpath 2.0可以直接执行此操作,但内置的Xpath 1.0语言仍然可以让您非常接近。
<!-- language: lang-php -->
$xmlDocument = new DOMDocument();
if ($xmlDocument->load('file.xml')) {
$xpath = new DOMXPath($xmlDocument);
$nodeList = $xpath->query('//city/@Name', $xmlDocument);
从这里你有一个DOMNodeList类。将它放在一个数组中并删除重复项。我现在还没有完成它的PHP环境,但我想提供一个不同于SimplyXML的方向。