我有兩個xml文件,我想區分它們。自動格式和差異XML
問題是xml文件沒有格式化,都在一行中。我發現的常規差異工具無法自動格式化它們。
我想知道是否有任何工具可以做到這一點(需要能夠在命令提示符下調用)。 或 是否有一個自動formater,我可以在命令提示符下調用,以便隨後調用diff工具。
謝謝!
我有兩個xml文件,我想區分它們。自動格式和差異XML
問題是xml文件沒有格式化,都在一行中。我發現的常規差異工具無法自動格式化它們。
我想知道是否有任何工具可以做到這一點(需要能夠在命令提示符下調用)。 或 是否有一個自動formater,我可以在命令提示符下調用,以便隨後調用diff工具。
謝謝!
http://tidy.sourceforge.net/是縮進XML的好工具,所以比較容易區分。 MinGW MSYS(或Cygwin)有GNU diff工具的一個端口。 WinMerge是我個人比較喜歡的一個很好的圖形化比較工具。
的命令行程序xmllint將可以格式化和規範化的XML以不同的方式:
xmllint --format file.xml > formatted_file.xml
xmllint --c14n file.xml > canonicalized_file.xml
使用整潔,DIFF在命令行是這樣的:
diff <(tidy -q -xml file1.xml) <(tidy -q -xml file2.xml)
你可能想爲整潔命令添加-indent。
你可以在命令提示符下調用該工具嗎? – formatjam 2012-07-26 21:05:49
您可以從命令提示符調用WinMerge yes,但它會打開一個圖形窗口。如果你只需要命令行,你可以使用整潔的工具,並將其傳遞給MinGW附帶的GNU diff工具(或者,實際上,http://unxutils.sourceforge.net/甚至比MinGW簡單if你喜歡)。 – Allanrbo 2012-07-26 21:09:57
不,忘記我說的管道:-)這可能不適用於差異。但你可以使用整潔的工具來保存,例如tmp1.xml和tmp2.xml,然後diff tmp1.xml tmp2.xml。 – Allanrbo 2012-07-26 21:17:25