首页 > 解决方案 > xmldiff,如何抑制空格差异

问题描述

我正在尝试在单元测试中使用 xmldiff 来比较 xml。我有 2 个 xml,我很高兴它们是相同的(并且 notepad++ 同意我的观点)。

如果我做

from xmldiff import main, formatting

diff = main.diff_trees(actual.getroot(),expected.getroot())

虽然我得到了一个空白差异列表,但我想忽略它......例如

[UpdateTextIn(node='/schedule[1]', text='\n  '),
 UpdateTextIn(node='/schedule/contentGroups[1]', text='\n    '),
 UpdateTextAfter(node='/schedule/contentGroups[1]', text='\n  '),
 UpdateTextIn(node='/schedule/transmissions[1]', text='\n    '),
 UpdateTextAfter(node='/schedule/transmissions[1]', text='\n'),
 etc

如何抑制这些差异?

标签: python-3.x

解决方案


好的,我怀疑人们会惊恐万分,我不是python程序员,但这似乎可行

diff = main.diff_trees(expected.getroot(),actual.getroot())
meaningfulDiffs = \
    list(
        filter(
            lambda line: (line.text != None) and (line.text != ""),
            diff
            )
        )
self.assertFalse(any(meaningfulDiffs),msg = "errors=" + pprint.pformat(meaningfulDiffs))

推荐阅读