XMLUnit-2 比较部分 XML
XMLUnit-2 compare partial XMLs
我有一个本地 test
XML 数据如下
testLocalXML
<root>
<elementA>something different</elementA>
<elementB>something else</elementB>
<elementC>yet another thing</elementC>
</root>
但我从服务器获取的数据可能很大,并且会不断动态增加,例如
服务器响应
<root>
<elementA>something different</elementA>
<elementB>something else</elementB>
<elementC>yet another thing</elementC>
<elementD>next data</elementD>
<elementE>another data</elementE>
<elementF>F data</elementF>
.
.
... so on...
</root>
我不知道使用以下逻辑可以忽略哪个 node
。我的节点是动态的。
.withNodeFilter(node -> !(node.getNodeName().equals("elementD") ||
node.getNodeName().equals("elementE"))
在这里,由于服务器响应是动态的并且不断增加,我将如何使用 XMLUnit
验证我在 testLocalXML 中提到的任何数据?
嗯,我确实知道我感兴趣的元素,所以我可以轻松做到
final Collection<String> expected = Arrays.asList("root", "elementA", elementB", "elementC");
并且可以添加过滤器
.withNodeFilter(n -> expected.contains(n.getNodeName()))
我有一个本地 test
XML 数据如下
testLocalXML
<root>
<elementA>something different</elementA>
<elementB>something else</elementB>
<elementC>yet another thing</elementC>
</root>
但我从服务器获取的数据可能很大,并且会不断动态增加,例如
服务器响应
<root>
<elementA>something different</elementA>
<elementB>something else</elementB>
<elementC>yet another thing</elementC>
<elementD>next data</elementD>
<elementE>another data</elementE>
<elementF>F data</elementF>
.
.
... so on...
</root>
我不知道使用以下逻辑可以忽略哪个 node
。我的节点是动态的。
.withNodeFilter(node -> !(node.getNodeName().equals("elementD") ||
node.getNodeName().equals("elementE"))
在这里,由于服务器响应是动态的并且不断增加,我将如何使用 XMLUnit
验证我在 testLocalXML 中提到的任何数据?
嗯,我确实知道我感兴趣的元素,所以我可以轻松做到
final Collection<String> expected = Arrays.asList("root", "elementA", elementB", "elementC");
并且可以添加过滤器
.withNodeFilter(n -> expected.contains(n.getNodeName()))