0

我有两个这样的 xml 文件:

<personlist>
    <person>
        <name>Test</name>
    </person>
    <person>
        <name>Test2</name>
    </person>
</personlist>

和这个

<personlist>
    <person>
        <name>Test</name>
    </person>
</personlist>

我知道想用来XMLUnit获取这两个 xml 文件之间的区别。有没有办法告诉XMLUnit我添加或删除了哪些节点?如果我比较 xml 文件,我想要这样的结果:

1 person node removed
4

2 回答 2

0

这个方法怎么样?

public class DifferenceinXMLTest extends XMLTestCase {
  @Test
  public void test() {
    final String xml1 = ""
    final String xml2 = ""
    XMLUnit.setIgnoreWhitespace(true); // ignore whitespace differences
    assertXMLEquals(xml1, xml2);  // assertXMLEquals comes from XMLTestCase
  }
}

要获取列表,您可以使用 detaildiff 类。

一些例子 - http://www.programcreek.com/java-api-examples/index.php?api=org.custommonkey.xmlunit.DetailedDiff

http://xmlunit.sourceforge.net/example.html

于 2016-02-24T15:59:08.943 回答
0

添加和删​​除节点是一种特殊的区别。因此,您需要使用一种可以为您带来所有差异的方法。如果使用 XMLUnit 1.x,则意味着使用DetailedDiffgetAllDifferences- 如果使用 XMLUnit 2.x,则意味着查看Diff并且getDifferences很可能DiffBuilder

XMLUnit 将标记控件或测试节点详细信息null与类型CHILD_NODE_NOT_FOUND_ID为 1.x 和CHILD_LOOKUP2.x的差异。如果测试详细信息为null,则该节点已被删除。如果控制细节是null它已被添加。

使用 XMLUnit 1.x 时,请确保设置XMLUnit.setCompareUnmatched(false),否则您可能根本不会收到任何CHILD_NODE_NOT_FOUND差异。

于 2016-02-26T17:35:37.193 回答