Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XMLUnit-Xml文件缩进对比较的影响_Java_Xml_Xml Serialization_Jaxb_Xmlunit - Fatal编程技术网

Java XMLUnit-Xml文件缩进对比较的影响

Java XMLUnit-Xml文件缩进对比较的影响,java,xml,xml-serialization,jaxb,xmlunit,Java,Xml,Xml Serialization,Jaxb,Xmlunit,我目前正在尝试使用该库来比较两个XML文件。 其中一个是候选对象,由我的代码从Java对象(使用JAXB)生成,另一个是引用(我无法修改它)。 基本上,我试图证明,给定一个引用XML文件,我可以对其进行非序列化(使用Jaxb和我自己的一些类),然后将其序列化回另一个文件,并且仍然具有相同的内容 这个库似乎提供了我所需要的服务,但当生成的文件没有正确缩进(类似于“漂亮打印”版本)时,比较失败,缩进正常时也没有。 例如,当生成候选项时,没有缩进,内容是一行,如果缩进正确(手动),比较就可以了 以下是

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

这个库似乎提供了我所需要的服务,但当生成的文件没有正确缩进(类似于“漂亮打印”版本)时,比较失败,缩进正常时也没有。 例如,当生成候选项时,没有缩进,内容是一行,如果缩进正确(手动),比较就可以了

以下是XMLUnit生成的错误消息:

[不同]预期的子女人数 节点“3”,但为“1”

你们有办法解决这个问题吗? 也许解决方案是生成一个漂亮的打印版本的候选者,在这种情况下,您有没有想法将它与JAXB serialiser结合起来

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


提前感谢您的帮助。

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

在您的情况下,您可能需要:

XMLUnit.setIgnoreComments(true);
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true);
您还可能发现
setIgnoredAttributeOrder
属性也很有用