我有两个 xml 文件,我想区分它们。
问题是 xml 文件没有格式化并且都在一行中。我发现的常规差异工具无法自动格式化它们。
我想知道是否有任何工具可以做到这一点(需要能够在命令提示符下调用)。或者是否有一个我可以在命令提示符下调用的自动格式化程序,以便之后我会调用 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
Use tidy and diff on the command-line like this:
diff <(tidy -q -xml file1.xml) <(tidy -q -xml file2.xml)
You might want to add -indent to the tidy-commands.