我正在使用一個程序,其行爲像一個平臺,它創建它使用的對象的實例並將它們以xml格式存儲在數據庫中。該程序有一種方法可以將這些對象「轉儲」到xml集合中。智能化的方法來區分XML
我正在尋找我們的生產環境和我們的開發環境之間的差異,以便能夠確定它們之間的任何增量。
由於轉儲依賴於db中項目的順序,所以正常的diff並不合理。我需要的是在比較之前將xml元素在兩個轉儲中進行排序的方式,以便diff更加智能並更準確地反映delta。
例如:
文件1:
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar1>stuff1</bar1>
<bar2>stuff2</bar2>
</foo>
文件2:
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar2>stuff2</bar2>
<bar1>stuff1</bar1>
</foo>
我正在尋找一種方式,其中上述文件的差異會結果沒有區別,因爲唯一的區別是foo元素的空白和子順序。
有關如何用大文件完成此操作的任何想法?
小文件的以下工作:
使用http://prettydiff.com/我可以確保的「排序標記件」被選定的選項做到這一點。之後,我可以對上述內容進行區分,並將其展示爲一個匹配項。
我需要在本地做類似這樣的事情,可以用於可能相當大的文件。
https://www.altova.com/diffdog/xml-diff.html – bmargulies
真正的問題是,一些標籤允許他們的孩子以任意順序(「一組」),有些不允許(「一個序列」) ,這取決於應用程序的要求。我不知道你如何表達這種差異;如果你這樣做了,它將在文件的模式中。因此,無論您尋找哪種工具,都需要考慮架構,或者假設每個標籤內容都已排序(這是一個非常特殊的情況,並且可能適用於您),您最好對該工具感到滿意。 –
http://stackoverflow.com/a/40738608/1030675 – choroba