什麼是 XML 差異檢查器?
XML 差異檢查器比較兩個 XML 文檔並報告變更為一組結構差異:新增或刪除哪些元素、哪些屬性變更值以及文字內容在哪裡不同。它不是逐行文字差異,在重新格式化或重新排序某些內容時變成紅色,而是將兩個文件解析為節點樹並將它們作為資料進行比較。您將原始 XML 貼在左側,將新 XML 貼在右側,然後取得差異列表,每個差異都固定到發生差異的確切節點路徑,例如/catalog/book[1]/@category。
結構比較重要的原因是 XML 在許多不同的位元組佈局中具有相同的含義。兩個文件在結構上可以相同,但在縮排、屬性順序、行結尾或空元素是否寫為自閉標籤方面有所不同。純文字差異將所有這些標記為更改;結構差異會忽略它們,僅報告會改變解析器讀取文件的方式。此工具按外觀順序將相同標籤名稱的子元素配對,因此即使不相關的兄弟元素在其周圍移動,也會將第二本書元素與第二本書元素進行比較。
一切都在您的瀏覽器中運行,並帶有寬容的解析器,可以處理單引號或雙引號、自關閉標籤、CDATA 部分、註釋、處理指令和標準實體引用中的屬性。這些文件永遠不會離開您的設備,永遠不會上傳,永遠不會被記錄,這很重要,因為人們比較的XML 通常是一個設定檔、一個API 有效負載、一個網站地圖或一個SVG。格式錯誤的輸入會透過明確的訊息而不是無聲的錯誤答案來報告,一旦頁面加載,工具就會繼續與斷開連接的網路一起工作。
樣本顯示了這個 XML 差異檢查器報告的內容。點擊載入樣本,然後進行比較,摘要顯示新增 1 個、刪除 0 個、更改 2 個。第一本書的類別屬性列在/catalog/book [1]/@category,從虛構到神秘,其價格文字列在/catalog/book [1]/price/text (),從 12.99 到 14.99,新的 isbn 元素列在/catalog/book [2]/isbn。標題和作者元素根本沒有出現,縮排也不會改變。當您開啟檔案進行修復時,您會搜尋該節點路徑。
如何使用 XML 差異檢查器?
貼上兩個 XML 文件
將原始 XML 放在第一個欄位中,將變更後的 XML 放在第二個欄位中。如果您想查看如何報告新增的元素、刪除的屬性和變更的文本,請載入範例。
選擇比較選項
留下"忽略空白",這樣重新格式化就不會算作更改,並且可以選擇忽略屬性或不區分大小寫地比較名稱和值。
比較文件
按比較。該工具解析兩棵樹,並按節點路徑列出每個差異,分為新增、刪除和更改,並排顯示新舊值。
審查並匯出報告
按變更類型過濾,檢查路徑上的每個元素、屬性或文字差異,然後複製或下載完整報告以貼上到拉取請求或票證中。
主要特點
結構性的,不是基於線的
文件被解析為節點樹並作為資料進行比較,因此重新縮排、重新排序屬性或重新包裝行不會註冊為變更。僅報告真實的結構差異。
節點路徑精確定位
每個差異都標有發生該差異的確切路徑,例如/目錄/書籍[2]/價格/文字(),因此您可以在不掃描整個文件的情況下找到並修復變更。
元素、屬性和文字檢測
diff 將新增和刪除的元素與變更的屬性值和變更的文字內容分開,因此您可以一目了然地看到哪個類型的變更發生在哪裡。
訂單感知兒童匹配
同一標籤的重複元素按其出現順序配對,因此將第三項與第三項進行比較,並且不相關的兄弟姊妹不會改變整個差異。
Frequently Asked Questions
Related Tools
CSV Diff Checker
Compare two CSV files and see which rows were added, removed, or changed, down to the exact cell. Match rows by a key column or by position. Runs client-side.
JSON Diff Checker
Compare two JSON documents structurally and see added, removed, and changed keys with exact paths
Compare Two Lists
Compare two lists to find common items, items unique to each list, and duplicates within a list. Case-insensitive matching, any delimiter, instant set operations. Client-side.
XML Formatter
Format, beautify, minify, and validate XML online - preserves comments, CDATA, and attribute order, with clear error reporting
Comments
0 comments
No comments yet. Be the first to share your thoughts!