gpt4 book ai didi

java - XMLunit 比较失败,因为子节点顺序

转载 作者:行者123 更新时间:2023-11-29 03:12:16 26 4
gpt4 key购买 nike

我正在将生成的 XML 文件与另一个使用 XMLunit 的示例进行比较,我在 ChildNodes Order 及其属性方面遇到了问题。(Linux 和 Mac 代不同)

这是我试过的:

@Test
public void testComparingXML() throws Exception {
XMLUnit.setIgnoreWhitespace(true);
String expectedXml = IOUtils.toString(ConnectorStrategyStudioXmlTest.class.getClassLoader().getResourceAsStream(EXPECTED_XML));
String actualXml = IOUtils.toString(ConnectorStrategyStudioXmlTest.class.getClassLoader().getResourceAsStream(ACTUAL_XML));
Diff diff = new Diff(expectedXml, actualXml);
diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());
DetailedDiff detailedDiff = new DetailedDiff(diff);
assertTrue(detailedDiff.toString(), detailedDiff.similar());
}

我读到过使用 RecursiveElementNameAndTextQualifier 类可以解决问题,但仍然无效。

这是一张包含 XML 比较失败示例的图片: inverted(在新标签页中打开全屏)c:

可以看到,两个子节点都是倒置的

提前TY。胡安

最佳答案

使用非默认的 ElementQualifier 是正确的解决方案,但 RecursiveElementAndTextQualifier 肯定不能满足您的需求。

乍一看,似乎可以通过查看元素的名称和 caption 属性的值来找到匹配的元素。如果这是正确的,那么 ElementNameAndAttributeQualifier 和作为构造函数参数传入的 "caption" 应该可以解决问题。

XMLUnit 中内置了更多选项,在最坏的情况下,如果现有选项都不符合您的需要,您需要自己实现 ElementQualifier 接口(interface)。

关于java - XMLunit 比较失败,因为子节点顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28683449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com