【问题标题】:XMLUnit - Xml file indentation impacts on comparisonXMLUnit - Xml 文件缩进对比较的影响
【发布时间】:2011-03-09 16:05:07
【问题描述】:

我目前正在尝试使用XMLUnit 库来比较两个 XML 文件。 其中一个是 candidate,是由我的 Java 对象代码(使用 JAXB)生成的,另一个是 reference(我无法修改它)。 基本上我试图证明给定一个参考 XML 文件我可以反序列化它(使用 Jaxb 和我自己的一些类)然后将它序列化回另一个文件并且仍然具有相同的内容。

该库似乎提供了我需要的服务,但是当生成的文件没有正确缩进(类似于“漂亮打印”版本)时,比较会失败,而当缩进正常时也不会。 例如当 candidate 生成时没有缩进,内容是单行的,如果缩进正确(手动)比较就OK了。

下面是 XMLUnit 生成的错误信息:

[不同] 预期的孩子数量 节点“3”但为“1”

你们有什么办法解决这个问题吗? 也许解决方案是生成 candidate 的漂亮打印版本,在这种情况下,您是否有想法将它与 JAXB 序列化程序结合起来?

顺便说一句,如果您现在有更好的 Java 解决方案来比较 XML 文件,我会很高兴知道它;)

提前感谢您的帮助。

【问题讨论】:

    标签: java xml xml-serialization jaxb xmlunit


    【解决方案1】:

    您可以通过在org.custommonkey.xmlunit.XMLUnit 类上设置属性来放松 XMLUnit 与树进行比较时使用的一些约束。

    在你的情况下,你可能想要:

    XMLUnit.setIgnoreComments(true);
    XMLUnit.setIgnoreWhitespace(true);
    XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true);
    

    您可能还会发现setIgnoredAttributeOrder 属性也很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多