我有一个要求,我需要找到两个XML文件 - 更新/最新文件(File1)和以前版本(File2)之间的区别。 Updated XML文件可能有其他节点,或者某些节点可能被删除。 我必须比较这两个XML,并需要显示差异。 我使用深度相等的函数2比较两个节点,但我的当前逻辑只有在File1具有比File2更大或更多的节点时才有效。 如果File1的节点数少于File2,则无法正常工作。 请帮助或给我一些比较的逻辑 感谢
答案 0 :(得分:2)
听起来您当前的逻辑检测到已添加到File1的节点,相对于File2:
let $new-nodes := local:diffs($file1, $file2)
如果您可以应用相同的逻辑但是反转节点,您将找到File2中存在的那些节点,而不是File1,从而为您提供已删除的节点。
let $deleted-nodes := local:diffs($file2, $file1)
将这些添加在一起应该可以满足您的需求。 (这假设您的逻辑适用于内存节点。)