【发布时间】:2015-10-07 20:48:38
【问题描述】:
我正在尝试实现有意义的 XML 比较。我想比较两个不同的 XML 以了解它们是否“有意义”相等。
示例 XML 1:
<?xml version="1.0" encoding="UTF-8"?>
<al:moAttribute>
<al:name>impiId</al:name>
<al:value>616731935012345678</al:value>
</al:moAttribute>
<al:moAttribute>
<al:name>impuId</al:name>
<al:value>tel:+16167319350</al:value>
</al:moAttribute>
XML 2:
<?xml version="1.0" encoding="UTF-8"?>
<al:moAttribute>
<al:name>impuId</al:name>
<al:value>tel:+16167319350</al:value>
</al:moAttribute>
<al:moAttribute>
<al:name>impiId</al:name>
<al:value>616731935012345678</al:value>
</al:moAttribute>
在此示例中,两个 XML 都“有意义”相同,但仅在元素顺序上有所不同。我想比较他们两个,看看他们是否几乎相等。
我试过这个解决方案:
Best way to compare 2 XML documents in Java
我试过了:
XMLUnit.setIgnoreWhitespace(true);
diff.identical (...);
diff.similar (...);
但如果 XML 的顺序不同,则 XML 比较返回 false。
有什么建议吗?
【问题讨论】:
-
使用重写的 equals 方法将数据存储在自定义类型中。假设它们都具有相同类型的信息?
-
你mentioned的问题有很多解决方案。看起来您在 xmlunit 方面取得了一些进展。请分享完整代码,有人会帮助..