使用XPath比较两个XML对象以获得完全相等

mmz*_*mzc 9 xml xpath

当我有两个XML对象时,如何使用XPath将它们与完全相等(所有相同的节点,属性和值)进行比较?

Dim*_*hev 7

在XPath 2.0中使用标准函数deep-equal().

Xpath 1.0没有这样的功能,因此需要在托管XPath的语言中执行比较.

如果必须使用XPath 1.0,则可以使用此解决方案:从XML节点java生成/获取xpath,以获取每个节点的XPath表达式的集合以及每个节点的Document1另一个XPath表达式集合Document2.然后比较两个集合 - 它们应该具有相同数量的表达式,并且表达式必须是等效的.

或者,您可以生成只验证两个集合包含相同数量的表达式并将每个表达式应用于Document1on Document2.


Mar*_*nen 5

XPath 2.0具有与之相同的功能:http://www.w3.org/TR/xpath-functions/#func-deep-equal.XPath 1.0没有任何可比性,你需要使用XPath 1.0使用的任何主机语言自己滚动.