在 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)

将这些加在一起应该可以满足您的需求。 (这假设您的逻辑在内存节点上工作。)