如何比较Delphi中的两种XML节点结构

如何比较Delphi中的两种XML节点结构,xml,delphi,txmldocument,ixmldomdocument,ixmldomnode,Xml,Delphi,Txmldocument,Ixmldomdocument,Ixmldomnode,在Delphi中有没有比较两个xml节点的方法 我正在使用MSXML解析器并将xml加载到IXmlDOMDocument2中。这些节点存储在IXmlDOMNode中 如果Delphi的TXMLDocument有帮助的话,我可以使用它。我不想下载任何第三方组件 我只想比较节点的结构,而不是值 我在中看到了类似的帖子/实用程序,但在Delphi中没有看到 谢谢大家! 因为您只想比较结构,所以可以将节点转换为“完整路径”,并将它们作为字符串进行比较 例如,让我们假设这些树: 树A 树B 从转换到“完整

在Delphi中有没有比较两个xml节点的方法

我正在使用MSXML解析器并将xml加载到IXmlDOMDocument2中。这些节点存储在IXmlDOMNode中

如果Delphi的TXMLDocument有帮助的话,我可以使用它。我不想下载任何第三方组件

我只想比较节点的结构,而不是值

我在中看到了类似的帖子/实用程序,但在Delphi中没有看到


谢谢大家!

因为您只想比较结构,所以可以将节点转换为“完整路径”,并将它们作为字符串进行比较

例如,让我们假设这些树:

树A 树B 从转换到“完整路径”,您将得到:

树A 树B
通过对完整路径列表进行迭代,您可以快速检查和比较其他树中是否存在这些路径。您还可以轻松找到树上的节点。

更新了问题,不再关心属性或值。我只是对比较这两种结构的简单方法感兴趣。你希望如何表达/描述差异?在这一点上我很灵活。可能有三个字符串列表通过引用传递。前两个将标识存在于其中一个中但不存在于另一个中的节点。第三部分包含差异。我知道节点向下钻取,因此列表中的字符串将包含节点路径。
Root -> Node1 -> Child1
              -> Child2
     -> Node2
Root -> Node1 -> Child1
     -> Node2
Root
Root\Node1
Root\Node1\Child1
Root\Node1\Child2
Root\Node2
Root
Root\Node1
Root\Node1\Child1
Root\Node2