回答
我以前用過的東西是diffxml。您可以將其用作svn或git等VCS的diff命令。
不幸的是,這個問題沒有一成不變的解決方案。 XML差異對您認爲不同的內容非常敏感。在一種情況下,子節點的順序可能很重要,而在另一種情況下(甚至可能在同一個文件中),它可能無關緊要。
看看XMLUnit。即使它是針對單元測試,它也是一個完整的XML差異引擎。你必須告訴它(在代碼中)如何確定兩個節點是否有資格進行比較,然後如何處理所有發現的潛在差異(即它們是否真實,在你的應用程序中)。它可以檢測「差事件」包括
- 屬性爲了
- 屬性數
- 子節點順序
- 號子節點的
- 隱VS明確的屬性值
- 評論的詳盡清單差異
- 文檔類型差異
- namespac e差異
還有一大堆。這些對您的應用程序來說可能都很重要或不重要,只有您可以決定。值得一看,但需要一些工作才能得到你想要的。
您正在尋找一個diff-tool,它只是VCS的一個子集。所有VCS'都可以使用外部程序來區分文件。由於外部diff工具可以是任何東西,它也可以是由您編寫的腳本,它可以用來解析和比較兩個xml文檔。
我不知道這是否讓您更容易找到您要找的東西,但它可能會。
正如其他人指出,你只需要一個很好的diff工具而不是vcs。
不幸的是,我還沒有聽說任何支持xml的圖形差異工具。所以我會使用像(winmerge或k3diff)這樣的常規diff工具,然後使用任何你喜歡的xml驗證工具來驗證合併產生的xml。
它應該是一個簡單的所有在一個工具爲虛擬/懶惰的用戶。 API或控制檯程序不適合。它看起來好像它不存在於開源世界中。
Clearcase可以做到這一點,但它是昂貴的。 Oxygen可以合併,但它也不是免費的。
你應該可能會將其變成問題更新部分。這不是一個答案。 – firegurafiku 2017-04-03 11:52:38
控制檯程序是完美的,只要它只需要一個命令 – Mike76 2017-08-18 06:20:00
Project: Merge旨在解決這個確切問題:通過SCM軟件比較和合並XML文件。
恐怕它也不是免費的,但它比聲稱可以比較和合並XML的其他工具要便宜得多。
- 1. XML的差異和合並
- 2. 使用TFS進行PDF版本控制
- 3. 使用cmake進行庫版本控制
- 4. 使用MVFS進行版本控制
- 5. 使用log4net.dll並面臨版本差異
- 6. 不要與SVN進行差異合併
- 7. 使用HATEOAS對耦合RESTful API進行版本控制
- 8. 樂觀與多版本併發控制 - 差異?
- 9. 有效使用差異的版本控制數據庫
- 10. 使用Accept頭對版本信息進行版本控制
- 11. 使用WIX進行非二進制文件版本控制
- 12. Nuget Packages使用powershell進行版本差異分析
- 13. cq5發佈實例中的版本控制和差異?
- 14. 爲什麼build.phonegap.com和控制檯版本之間存在差異
- 15. 差異2.3.3版本和4+
- 16. 使用NPanday和Maven發佈插件進行版本控制
- 17. 使用TFS在VM和版本控制中進行SharePoint開發
- 18. 使用Git和Dymola/Modelica進行版本控制
- 19. 使用Visual Studio 2010和HG進行版本控制
- 20. Elixir使用SCSS和JavaScript進行版本控制
- 21. 無版本控制的項目合併
- 22. 使用GIT修訂版進行版本控制
- 23. 使用PHP進行XML合併優化
- 24. 使用XPATH進行XML合併
- 25. 使用TFS 2010進行VS2005版本控制而不使用TS2005?
- 26. 如何使用Mercurial進行文本文檔的版本控制?
- 27. php版本差異
- 28. Android版本差異
- 29. Eclipse版本差異
- 30. GWT版本差異
可能的解決方案:[免費的Xml比較/合併工具](http://stackoverflow.com/questions/1871076),[XML Diff和合並](http://stackoverflow.com/questions/430001) – 2011-08-22 13:45:47