Java XMLUnit显示添加或删除的节点
我有两个类似这样的xml文件:Java XMLUnit显示添加或删除的节点,java,xml,xmlunit,Java,Xml,Xmlunit,我有两个类似这样的xml文件: <personlist> <person> <name>Test</name> </person> <person> <name>Test2</name> </person> </personlist> 这个方法怎么样 public class DifferenceinXMLTes
<personlist>
<person>
<name>Test</name>
</person>
<person>
<name>Test2</name>
</person>
</personlist>
这个方法怎么样
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
}
}
要获取列表,可以使用detaileddiff类
一些例子-
添加和删除节点是一种特殊的区别。因此,您需要使用其中一种方法,以提供所有差异。如果使用XMLUnit 1.x,这意味着使用
DetailedDiff
和getAllDifferences
——如果使用XMLUnit 2.x,这意味着查看Diff
和getDifferences
,很可能是DiffBuilder
XMLUnit将标记差异,控件或测试节点细节为null
,类型为CHILD\u node\u NOT\u FOUND\u ID
,在1.x中为CHILD\u LOOKUP
。如果测试详细信息为null
,则节点已被删除。如果控件详细信息为null
则已添加
使用XMLUnit 1.x时,请确保设置
XMLUnit.setCompareUnmatched(false)
,否则您可能不会收到任何子节点\u not \u FOUND
差异。只有在两个xml文件相同时才进行此测试。但是我想让XMLUnit告诉我这两个文件之间的区别。特别是我想知道添加或删除了哪些节点。更新答案-希望能有所帮助。
1 person node removed
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
}
}