我有两个这样的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发布于 2016-02-26 17:35:37
添加和删除节点是一种特殊的区别。因此,您需要使用的方法之一,给您所有的差异。如果使用XMLUnit 1.x,这意味着使用DetailedDiff和getAllDifferences -如果使用XMLUnit 2.x,则意味着查看Diff和getDifferences,以及最有可能的DiffBuilder。
XMLUnit将标记一个差异,无论是控件还是测试节点细节都是null,CHILD_NODE_NOT_FOUND_ID类型为1.x,CHILD_LOOKUP类型为2.x。如果测试细节为null,则节点已被移除。如果控制细节是null,则已经添加了它。
使用XMLUnit 1.x时,请确保设置XMLUnit.setCompareUnmatched(false),否则可能根本不会收到任何CHILD_NODE_NOT_FOUND差异。
发布于 2016-02-24 15:59:08
这个方法呢?
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
https://stackoverflow.com/questions/35606429
复制相似问题