如果有一个包含以下内容的xml文件,如何删除重复的对象?似乎没有一个 php simplexml 函数可以做到这一点。任何帮助将不胜感激。<?xml version="1.0"?><cars> <car><year>2000</year><make>cheverolet</make><model>malibu</model></car> <car><year>2019</year><make>cheverolet</make><model>malibu</model></car> <car><year>2000</year><make>cheverolet</make><model>malibu</model></car></cars>
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
使用 SimpleXML 将起作用,您可以使用它unset() 来删除项目,在这里我将已在数组中找到的项目存储起来,并在删除它或将其添加为新发现的组合之前进行检查。
唯一的复杂之处是在您正在修改的列表中取消设置项目的常见事情,所以在这里我只是一直$carPos指向列表中的实际项目,只有当我找到一个独特的项目时才增加它。这用于xpath()查找要查看的汽车列表,以便该列表独立于正在修改的列表...
$found = [];
$xml = simplexml_load_string($data);
$carPos = 0;
foreach ( $xml->xpath("//car") as $key => $car ) {
$carType = (string)$car->year.",".(string)$car->make.",".(string)$car->model;
if ( isset ( $found[$carType]) ) {
unset ($xml->car[$carPos]);
}
else {
$found[$carType] = true;
$carPos++;
}
}
- 1 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消