在 marklogic 中查找两个 xml 文件之间的差值
Find delta-difference between two xml File in marklogic
我有一个要求,我需要找出两个 XML file-Updated/Latest 文件 (File1) 和之前版本 (File2) 之间的区别。
更新的 XML 文件可能有额外的节点,或者一些节点可能被删除。
我必须比较这两个 XML 并且需要显示差异。
我正在使用深度相等函数两个比较两个节点,但只有当 File1 的节点大于或等于 File2 时,我当前的逻辑才有效。
如果 File1 的节点少于 File2,则它不起作用。
请帮助或给我一些逻辑来比较
谢谢
听起来您当前的逻辑检测到相对于 File2 已添加到 File1 的节点:
let $new-nodes := local:diffs($file1, $file2)
如果您可以应用相同的逻辑但反转节点,您将找到 File2 中存在的那些节点,但 File1 中不存在,从而为您提供已删除的节点。
let $deleted-nodes := local:diffs($file2, $file1)
将这些加在一起应该可以满足您的需求。 (这假设您的逻辑在内存节点上工作。)
我有一个要求,我需要找出两个 XML file-Updated/Latest 文件 (File1) 和之前版本 (File2) 之间的区别。 更新的 XML 文件可能有额外的节点,或者一些节点可能被删除。 我必须比较这两个 XML 并且需要显示差异。 我正在使用深度相等函数两个比较两个节点,但只有当 File1 的节点大于或等于 File2 时,我当前的逻辑才有效。 如果 File1 的节点少于 File2,则它不起作用。 请帮助或给我一些逻辑来比较 谢谢
听起来您当前的逻辑检测到相对于 File2 已添加到 File1 的节点:
let $new-nodes := local:diffs($file1, $file2)
如果您可以应用相同的逻辑但反转节点,您将找到 File2 中存在的那些节点,但 File1 中不存在,从而为您提供已删除的节点。
let $deleted-nodes := local:diffs($file2, $file1)
将这些加在一起应该可以满足您的需求。 (这假设您的逻辑在内存节点上工作。)