2015-02-09 126 views
2

我有一個需求,我需要找到兩個XML文件 - 更新/最新文件(File1)和以前的版本(File2)之間的區別。 更新後的XML文件可能有其他節點,或者某些節點可能會被刪除。 我必須比較這兩個XML,並需要顯示差異。 我正在使用深度相等函數兩個比較兩個節點,但我當前的邏輯只有在File1具有比File2更大或相同的節點時才起作用。 如果File1的節點少於File2,則不起作用。 請幫助或者給我一些邏輯以比較 感謝找到兩個XML之間的差異差異在marklogic中的文件

回答

2

這聽起來像你目前的邏輯檢測已添加到文件1的節點,相對於文件2:

let $new-nodes := local:diffs($file1, $file2) 

如果你可以將相同的邏輯,但反轉節點,您會發現存在於File2中的節點,但不是File1,從而爲您提供已刪除的節點。

let $deleted-nodes := local:diffs($file2, $file1) 

將這些加在一起應該會給你你需要的東西。 (這假定您的邏輯適用於內存節點。)