gpt4 book ai didi

java - 比较 Java diff 类中的 XML 文档 - 获取行号?

转载 作者:行者123 更新时间:2023-11-30 10:20:19 25 4
gpt4 key购买 nike

我有以下方法:

public static void assertXMLEquals(String expectedXML, String actualXML) throws Exception {
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setIgnoreAttributeOrder(true);

DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(expectedXML, actualXML));

List<Difference> allDifferences = diff.getAllDifferences();

Assert.assertEquals("Differences found: " + diff.toString(), 0, allDifferences.size());
}

它来自类:http://www.xmlunit.org/api/java/2.4.0/org/custommonkey/xmlunit/Diff.html

如果存在差异,它会打印出例如:

[different] Expected attribute value 'false' but was 'true' - comparing <attribute name="false"...> at //journey[1]/attribute[1]/@name to <attribute name="true"...> at /journeyDetails[1]/journey[1]/attribute[1]/@name

有什么方法可以覆盖它来打印行号吗?

最佳答案

XMLUnit 的差异引擎在 DOM 节点级别工作,DOM API 不公开此位置信息,因此它根本不能作为 Difference 的一部分使用。所以不,您根本无法掌握行号。

如果可以并且您使用的是 XMLUnit 2.x API 而不是旧版 API,则方法是使用 DifftoString 重载,它需要带有您自己的实现的 ComparisonFormatter。但这没有实际意义,因为 XMLUnit 1.x 和 2.x 都不能为您提供行号。

关于java - 比较 Java diff 类中的 XML 文档 - 获取行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286107/

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