2012-07-26 49 views
1

我有兩個xml文件,我想區分它們。自動格式和差異XML

問題是xml文件沒有格式化,都在一行中。我發現的常規差異工具無法自動格式化它們。

我想知道是否有任何工具可以做到這一點(需要能夠在命令提示符下調用)。 或 是否有一個自動formater,我可以在命令提示符下調用,以便隨後調用diff工具。

謝謝!

回答

1

http://tidy.sourceforge.net/是縮進XML的好工具,所以比較容易區分。 MinGW MSYS(或Cygwin)有GNU diff工具的一個端口。 WinMerge是我個人比較喜歡的一個很好的圖形化比較工具。

+0

你可以在命令提示符下調用該工具嗎? – formatjam 2012-07-26 21:05:49

+0

您可以從命令提示符調用WinMerge yes,但它會打開一個圖形窗口。如果你只需要命令行,你可以使用整潔的工具,並將其傳遞給MinGW附帶的GNU diff工具(或者,實際上,http://unxutils.sourceforge.net/甚至比MinGW簡單if你喜歡)。 – Allanrbo 2012-07-26 21:09:57

+0

不,忘記我說的管道:-)這可能不適用於差異。但你可以使用整潔的工具來保存,例如tmp1.xml和tmp2.xml,然後diff tmp1.xml tmp2.xml。 – Allanrbo 2012-07-26 21:17:25

0

的命令行程序xmllint將可以格式化和規範化的XML以不同的方式:

xmllint --format file.xml > formatted_file.xml 

xmllint --c14n file.xml > canonicalized_file.xml 
0

使用整潔,DIFF在命令行是這樣的:

diff <(tidy -q -xml file1.xml) <(tidy -q -xml file2.xml) 

你可能想爲整潔命令添加-indent。