我希望在Python脚本中找到一种高效的方法来比较两个XML文件并处理差异。场景是我有两个类似以下的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<garage>
<car>
<color>red</color>
<size>big</size>
<price>10000</price>
</car>
<car>
<color>blue</color>
<size>big</size>
<price>10000</price>
<!-- [...] -->
<car>
<color>red</color>
<size>big</size>
<price>11000</price>
</car>
</car>
</garage>
这些XML文件包含成千上万个小对象。这些文件本身大小约为5MB。棘手的是,只有两个文件中极少数条目不同,并且我只需要处理不同的信息。换句话说:我需要高效地找出哪些条目发生了变化或已添加。不幸的是,XML文件也包含一些我完全不关心的可选条目。
我考虑了以下解决方案:
- 将两个文件解析为DOM树并在循环中对它们进行比较
- 将两个文件解析为集合并使用诸如set.difference之类的运算符
- 尝试将一些处理交给Linux工具,例如grep和diff
difflib
获取差异。 - Steve Jessop