问题描述
我在 DiffBuilder
下面使用 XMLUnit-2
diff = DiffBuilder.compare(control).withTest(test).checkForSimilar()
.normalizeWhitespace().ignoreComments()
.ignoreWhitespace().ignoreElementContentWhitespace()
.withNodeFilter(node -> (filter(node,attrsToIgnore)))
.withAttributeFilter(fields -> (filterFields(fields,fieldsToIgnore)))
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText)).build();
它适用于打乱 List<>
中的 List<>
值或随机值,如下所示
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ResourceObject PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ResourceObject displayName="aggaccnm1" identity="U013JFHQ59D" objectType="account">
<Attributes>
<Map>
<entry key="costCenter" value="1111"/>
<entry key="department" value="QA"/>
<entry key="displayName" value="AggACCDN1"/>
<entry key="groups">
<value>
<List>
<String>S013J6S7STH</String>
<String>S013S71EMLN</String>
<String>S013S71GTU6</String>
</List>
</value>
</entry>
</Map>
</Attributes>
</ResourceObject>
但是,当我有 List < Map {} >
时它失败了.. 可以做些什么来处理 List<String>
值的随机顺序以及 List < Map {} >
值顺序。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ResourceObject PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ResourceObject displayName="aggaccnm1" identity="U013JFHQ59D" objectType="account">
<Attributes>
<Map>
<entry key="costCenter" value="1111"/>
<entry key="department" value="QA"/>
<entry key="displayName" value="AggACCDN1"/>
<entry key="groups">
<value>
<List>
<String>S013J6S7STH</String>
<String>S013S71EMLN</String>
<String>S013S71GTU6</String>
</List>
</value>
</entry>
<entry key="groups_objects">
<value>
<List>
<Map>
<entry key="display" value="Agggrp1"/>
<entry key="value" value="S013S71EMLN"/>
</Map>
<Map>
<entry key="display" value="Agggrp5"/>
<entry key="value" value="S013S71GTU6"/>
</Map>
<Map>
<entry key="display" value="Agggrp7"/>
<entry key="value" value="S013S71HVU6"/>
</Map>
</List>
</value>
</entry>
</Map>
</Attributes>
</ResourceObject>
在上面的示例中,您可以注意到我的 List < Map {} >
和我上面的实现对于简单的 List<>
运行良好,但不适用于 List < Map {} >
我想忽略两者的顺序,有人请告诉我这是如何实现的吗?
谢谢,
交换。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)