Java XMLUnit-Xml文件缩进对比较的影响
我目前正在尝试使用该库来比较两个XML文件。 其中一个是候选对象,由我的代码从Java对象(使用JAXB)生成,另一个是引用(我无法修改它)。 基本上,我试图证明,给定一个引用XML文件,我可以对其进行非序列化(使用Jaxb和我自己的一些类),然后将其序列化回另一个文件,并且仍然具有相同的内容 这个库似乎提供了我所需要的服务,但当生成的文件没有正确缩进(类似于“漂亮打印”版本)时,比较失败,缩进正常时也没有。 例如,当生成候选项时,没有缩进,内容是一行,如果缩进正确(手动),比较就可以了 以下是XMLUnit生成的错误消息: [不同]预期的子女人数 节点“3”,但为“1” 你们有办法解决这个问题吗? 也许解决方案是生成一个漂亮的打印版本的候选者,在这种情况下,您有没有想法将它与JAXB serialiser结合起来 顺便说一句,如果您现在有更好的Java解决方案来比较XML文件,我很高兴知道;)Java XMLUnit-Xml文件缩进对比较的影响,java,xml,xml-serialization,jaxb,xmlunit,Java,Xml,Xml Serialization,Jaxb,Xmlunit,我目前正在尝试使用该库来比较两个XML文件。 其中一个是候选对象,由我的代码从Java对象(使用JAXB)生成,另一个是引用(我无法修改它)。 基本上,我试图证明,给定一个引用XML文件,我可以对其进行非序列化(使用Jaxb和我自己的一些类),然后将其序列化回另一个文件,并且仍然具有相同的内容 这个库似乎提供了我所需要的服务,但当生成的文件没有正确缩进(类似于“漂亮打印”版本)时,比较失败,缩进正常时也没有。 例如,当生成候选项时,没有缩进,内容是一行,如果缩进正确(手动),比较就可以了 以下是
提前感谢您的帮助。您可以通过在
org.custommonkey.XMLUnit.XMLUnit
类上设置属性来放松XMLUnit与树进行比较时使用的一些约束
在您的情况下,您可能需要:
XMLUnit.setIgnoreComments(true);
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true);
您还可能发现setIgnoredAttributeOrder
属性也很有用