XMLUnit 显示添加或删除的节点
XMLUnit show added or removed nodes
我有两个这样的 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
这个方法怎么样?
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
}
}
要获取列表,您可以使用 detailediff class。
一些例子 -
http://www.programcreek.com/java-api-examples/index.php?api=org.custommonkey.xmlunit.DetailedDiff
添加和删除节点是一种特殊的差异。因此,您需要使用一种能给您带来所有差异的方法。如果使用 XMLUnit 1.x 这意味着使用 DetailedDiff
和 getAllDifferences
- 如果使用 XMLUnit 2.x 这意味着查看 Diff
和 getDifferences
并且很可能 DiffBuilder
.
XMLUnit 将标记差异,其中控制或测试节点详细信息为 null
,1.x 中的类型为 CHILD_NODE_NOT_FOUND_ID
,2.x 中的类型为 CHILD_LOOKUP
.如果测试详细信息是 null
,则该节点已被删除。如果控件详细信息是 null
,则已添加。
使用 XMLUnit 1.x 时确保设置 XMLUnit.setCompareUnmatched(false)
否则您可能根本不会收到任何 CHILD_NODE_NOT_FOUND
差异。
我有两个这样的 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
这个方法怎么样?
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
}
}
要获取列表,您可以使用 detailediff class。
一些例子 - http://www.programcreek.com/java-api-examples/index.php?api=org.custommonkey.xmlunit.DetailedDiff
添加和删除节点是一种特殊的差异。因此,您需要使用一种能给您带来所有差异的方法。如果使用 XMLUnit 1.x 这意味着使用 DetailedDiff
和 getAllDifferences
- 如果使用 XMLUnit 2.x 这意味着查看 Diff
和 getDifferences
并且很可能 DiffBuilder
.
XMLUnit 将标记差异,其中控制或测试节点详细信息为 null
,1.x 中的类型为 CHILD_NODE_NOT_FOUND_ID
,2.x 中的类型为 CHILD_LOOKUP
.如果测试详细信息是 null
,则该节点已被删除。如果控件详细信息是 null
,则已添加。
使用 XMLUnit 1.x 时确保设置 XMLUnit.setCompareUnmatched(false)
否则您可能根本不会收到任何 CHILD_NODE_NOT_FOUND
差异。