我正在尝试找到一种有效的方法来比较两个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>
Run Code Online (Sandbox Code Playgroud)
这些XML文件包含数千个小对象.文件本身大小约为5 MB.棘手的是,这两个文件中只有极少数条目不同,我只需要处理不同的信息.换句话说:我需要有效地(!)找出哪些条目已更改或已添加.不幸的是,XML文件还包含一些我根本不关心的可选条目.
我考虑了以下解决方案:
这里有没有人有这些方法的表现经验,可以指导我走进去的方向吗?
创建一个缓存的中间格式,其中仅包含您关心比较的内容。比较两个文件时,A.xml& B.xml,比较它们的A.cached和B.cached相反,如果丢失则生成它们并在文件更改时删除它们(或根据时间戳等重新生成)。生成成本将通过多次比较进行摊销,并且您不会迭代不必要的条目。
“ ”的格式.cached实际上取决于您关心的内容以及您需要多少信息/上下文。它甚至可能有二进制表示