首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLUnit显示添加或删除节点

XMLUnit显示添加或删除节点
EN

Stack Overflow用户
提问于 2016-02-24 15:39:20
回答 2查看 662关注 0票数 0

我有两个这样的xml文件:

代码语言:javascript
复制
<personlist>
    <person>
        <name>Test</name>
    </person>
    <person>
        <name>Test2</name>
    </person>
</personlist>

还有这个

代码语言:javascript
复制
<personlist>
    <person>
        <name>Test</name>
    </person>
</personlist>

我知道想要使用XMLUnit来获得这两个xml文件之间的区别。有没有一种方法可以让XMLUnit向我展示添加或删除哪些节点?如果比较xml文件,我希望得到如下结果:

代码语言:javascript
复制
1 person node removed
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-26 17:35:37

添加和删除节点是一种特殊的区别。因此,您需要使用的方法之一,给您所有的差异。如果使用XMLUnit 1.x,这意味着使用DetailedDiffgetAllDifferences -如果使用XMLUnit 2.x,则意味着查看DiffgetDifferences,以及最有可能的DiffBuilder

XMLUnit将标记一个差异,无论是控件还是测试节点细节都是nullCHILD_NODE_NOT_FOUND_ID类型为1.x,CHILD_LOOKUP类型为2.x。如果测试细节为null,则节点已被移除。如果控制细节是null,则已经添加了它。

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

票数 0
EN

Stack Overflow用户

发布于 2016-02-24 15:59:08

这个方法呢?

代码语言:javascript
复制
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
  }
}

要获得列表,可以使用详细的list类。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35606429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档