首页 > 解决方案 > 比较两个文件夹(输入和输出文件夹)中的 xml,并使用 python 显示每次比较的差异

问题描述

from xmldiff import main
diff = main.diff_files ("input1.xml","output1.xml")
print (diff)

现在这是比较 input1xml和 output1xml并显示这两个xmls的差异 else null 如果没有差异!我要找的是... xmls(input1,input2,input3 ....)列表存储在一个文件夹(输入文件夹)中,类似地xmls(output1,output2,output3 ...)列表在另一个文件夹中(输出文件夹)。我想遍历输入文件夹和输出文件夹,并逐一比较xml....input1 与 output1xml并显示差异,然后 input2 与 output2xml并显示差异等等......因此,全部xmls在输入文件夹中必须与它们各自的输出进行比较,xmls并显示是否相同或是否存在差异,然后显示这些差异。

标签: python

解决方案


xmldiff 的方法与 xml 文件相比似乎非常简单: https ://github.com/Shoobx/xmldiff

您的问题似乎有两部分,遍历文件和打印相应 xml 文件之间的差异。问题的第一部分很简单,第二部分对于分层数据要困难得多。差异确实在旁观者的眼中,我认为您需要更具体地了解您正在寻找的差异。见: http://ilpubs.stanford.edu:8090/115/1/ 1995-46.pdf

如果您的问题提供了准确的命名约定,即 (input[i], output[i]) 您应该能够很容易地进行迭代。

     from xmldiff import main

     n = 5 # number of files in each folder. We'll use 5 for example. File names should correspond for i in range(n)

    for i in range(n):
        diff = main.diff_files("filepath/input{0}.xml","filepath/output{0}.xml".format(n+1)
        print(diff)

我对 xml dff 知之甚少,无法专门帮助您检测特定差异考虑使用xmldiff.formatting.XMLFormatter(normalize=WS_NONE, pretty_print=True, text_tags=(), formatting_tags=())


推荐阅读