Ada*_*ite 1 html php xml parsing
您好我正在使用PHP解析XML文件以更好的格式创建另一个XML文件,我最终将用它来填充无序的HTML列表.
但XML feed有重复的条目,因此我的格式化输出也有重复的条目.我如何循环遍历Feed并以某种方式删除重复项?尽可能使用PHP.我是一个新手,我不知道该如何处理这个.
这是一个典型的输出(我的格式化XML与重复):
<films>
<film>
<filmtitle>Death Race 2</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=377029</filmlink>
</film>
<film>
<filmtitle>Death Race 2</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=377029</filmlink>
</film>
<film>
<filmtitle>Shattered Glass</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=UKIC48</filmlink
</film>
<film>
<filmtitle>Shattered Glass</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=UKIC48</filmlink>
</film>
<film>
<filmtitle>The Brothers Bloom</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=380196</filmlink>
</film>
<film>
<filmtitle>The Brothers Bloom</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=380196</filmlink>
</film>
...and so on...
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.谢谢.
更新:
我在循环遍历feed之前定义了一个数组,如下所示:
$filmList = array();
Run Code Online (Sandbox Code Playgroud)
在整个列表中循环时,我使用以下命令添加了条目:
array_push($filmsForList, array("filmTitle" => $title, "pictureLink" => $pictureLink);
Run Code Online (Sandbox Code Playgroud)
其中$ filmTitle和$ filmLink是解析后的XML中的值.我该如何删除重复项?或者阻止他们进入第一名?
谢谢...
试试这个:
<?php
$str=<<<'EOT'
<films>
<film>
<filmtitle>Death Race 2</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=377029</filmlink>
</film>
<film>
<filmtitle>Death Race 2</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=377029</filmlink>
</film>
<film>
<filmtitle>Shattered Glass</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=UKIC48</filmlink>
</film>
<film>
<filmtitle>Shattered Glass</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=UKIC48</filmlink>
</film>
<film>
<filmtitle>The Brothers Bloom</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=380196</filmlink>
</film>
<film>
<filmtitle>The Brothers Bloom</filmtitle>
<filmlink>http://www.picturebox.tv/watchnow?id=380196</filmlink>
</film>
</films>
EOT;
$xml=simplexml_load_string($str);
$seen=array();
$len=$xml->film->count();
for($i=0;$i<$len;$i++){
$key=(string) $xml->film[$i]->filmlink;
if (isset($seen[$key])) {
unset($xml->film[$i]);
$len--;
$i--;
}else{
$seen[$key]=1;
}
}
echo $xml->asXML();
?>
Run Code Online (Sandbox Code Playgroud)
这清除重复 filmlink
| 归档时间: |
|
| 查看次数: |
2734 次 |
| 最近记录: |