我有两个这样的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
答案 0 :(得分: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
}
}
要获取列表,您可以使用detaileddiff类。
一些例子 - http://www.programcreek.com/java-api-examples/index.php?api=org.custommonkey.xmlunit.DetailedDiff
答案 1 :(得分:0)
添加和删除节点是一种特殊的差异。因此,您需要使用一种方法来解决所有差异。如果使用XMLUnit 1.x意味着使用On 3-Feb at 21:00 There was 1 attacks
On 4-Feb at 08:00 There was 15 attacks
On 4-Feb at 10:00 There was 60 attacks
和DetailedDiff
- 如果使用XMLUnit 2.x意味着查看getAllDifferences
和Diff
,最有可能getDifferences
XMLUnit将标记控件或测试节点详细信息与DiffBuilder
的差异,其中1.x中的类型为null
,而2.x中的CHILD_NODE_NOT_FOUND_ID
。如果测试详细信息为CHILD_LOOKUP
,则表示该节点已被删除。如果控件详细信息为null
则已添加。
使用XMLUnit 1.x时,请确保设置null
,否则您可能根本不会收到XMLUnit.setCompareUnmatched(false)
个差异。