|
1
0
使用这种方法的一个问题是,它只给出了一个布尔答案,而没有告诉您两个节点之间的实际差异是什么。另一个问题是,您无法告诉它您认为重要的差异:例如(据我所见),冗余命名空间声明被这个特定方法认为是重要的。空白通常是有问题的。我在使用XPath deep-equal()方法时遇到了同样的问题,并编写了 saxon:deep-equal 因此,变量。但我现在更喜欢使用一组XPath断言来测试预期结果。W3C XSLT测试套件将此技术用于以下测试断言:
|
|
|
2
0
|
|
|
3
0
至于我的具体问题,也就是说,将两个XML节点与“isEqualNode”进行简单比较,一个来自输入字符串,一个来自数据转换,我必须做以下工作:我不需要解析字符串,而是可以通过InputStream对其解组,从而获得所需的节点类型。
这会产生相同的节点类型,并按预期适用于我的设置。尽管如此,正如Michael Kay所指出的那样,这种比较两个XML树的方法存在一些缺陷,因此不要认为这是一种最佳实践,而应该求助于另一种答案来进行一般的XML比较。 |