我试图找到一种有效的方法来比较两个 XML 文件并处理 python 脚本中的差异。场景是我有两个类似于以下内容的 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 文件包含数千个小对象。文件本身的大小约为 5 MB。棘手的是这两个文件只有很少的条目不同,我只需要处理不同的信息。换句话说:我需要有效地(!)找出哪些条目已更改或已添加。不幸的是,XML 文件还包含一些我根本不关心的可选条目。
我考虑了以下解决方案:
- 将两个文件解析为 DOM 树并在循环中比较它们
- 将两个文件解析为集合并使用 set.difference 等运算符
- 尝试将一些处理交给一些 linux 工具,如 grep 和 diff
这里有没有人对这种方法的性能有经验并且可以指导我进入的方向?