java - XMLUnit-2 比较部分 XML

标签 java xml xmlunit xmlunit-2

我有一个本地测试 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>

我不知道使用以下逻辑可以忽略哪个节点。我的节点是动态的。

.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()))

关于java - XMLUnit-2 比较部分 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61139266/

相关文章:

java - JAXB validator 未检测到语法错误?

c# - 跟踪大型 XML 文件的加载进度

java - 使用 XMLUnit 验证 XML 元素的顺序

java - 使用 XMLUnit 1.6 的 xpath 中的命名空间问题

java - 需要绘制抛出的球的抛射运动

java - 如何在 Java 程序中通过 java.net.URL 类监控打开的 URL?

python - 使用 RegEx 从伪标签之间提取数据(不能使用 BeautifulSoup)

java - 一个按钮不会出现

java - 从另一个类调用 XMLUnit 测试

java - 在JasperReports中设置页面高度