比较Java中2个XML文档的最佳方法

我正在尝试编写一个应用程序的自动化测试,该测试基本上将自定义消息格式转换为XML消息并将其发送到另一端。我有一组不错的输入/输出消息对,所以我要做的就是将输入消息发送进去,并听XML消息传到另一端。

当需要将实际输出与预期输出进行比较时,我遇到了一些问题。我的第一个想法只是对预期消息和实际消息进行字符串比较。这不能很好地工作,因为我们拥有的示例数据并不总是保持一致的格式,并且常常为XML名称空间使用不同的别名(有时根本不使用名称空间)。

我知道我可以解析两个字符串,然后遍历每个元素并自己比较它们,这并不是很难做到的,但是我感觉有一种更好的方法或可以利用的库。

因此,归根结底,问题是:

给定两个都包含有效XML的Java字符串,你将如何确定它们在语义上是否等效?如果你有办法确定差异是多少,你将获得加分。

回答:

听起来像XMLUnit的工作

  • http://www.xmlunit.org/
  • https://github.com/xmlunit

例:

public class SomeTest extends XMLTestCase {

@Test

public void test() {

String xml1 = ...

String xml2 = ...

XMLUnit.setIgnoreWhitespace(true); // ignore whitespace differences

// can also compare xml Documents, InputSources, Readers, Diffs

assertXMLEqual(xml1, xml2); // assertXMLEquals comes from XMLTestCase

}

}

以上是 比较Java中2个XML文档的最佳方法 的全部内容, 来源链接: utcz.com/qa/426279.html

回到顶部