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

问题:

我正在尝试编写一个应用程序的自动测试,该应用程序基本上将自定义消息格式转换为XML消息,并将其发送到另一端。我有一套好的输入/输出消息对,所以我需要做的是发送输入消息,并收听XML消息,出来另一端。
当将实际输出与预期输出进行比较时,我遇到了一些问题。我的第一个想法只是对期望和实际的信息进行字符串比较。这不能很好地工作,因为我们拥有的示例数据并不总是格式一致,并且往往有时候用于XML命名空间的不同别名(有时也不会使用命名空间)。
我知道我可以解析两个字符串,然后遍历每一个元素,并自己比较它们,这不是太难做,但是我觉得有一个更好的方法或一个可以利用的库。
所以,煮沸了,问题是:
给定两个包含有效XML的Java字符串,您将如何判断它们是否在语义上相当?奖金积分,如果你有办法确定什么差异。

回答:

听起来像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
    assertXMLEquals(xml1, xml2);  // assertXMLEquals comes from XMLTestCase
  }
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Best way to compare 2 XML documents in Java

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

30 + = 32