如何比较XML文件

Avn*_*evy 8 xml diff

我有两个XML文件(XSD),它们是由某些工具生成的.
该工具不保留元素的顺序,因此尽管内容相同,但是因为文件不同而将文本与文本进行比较.
是否有一些工具可以在比较之前对元素进行排序,并且可以对文档进行文本比较?当然,排序需要递归完成.

数据示例:
文件A:

<xml>
  <A/>
  <B/>
</xml>
Run Code Online (Sandbox Code Playgroud)

档案B:

<xml>
  <B/>
  <A/>
</xml>
Run Code Online (Sandbox Code Playgroud)

Jam*_*vec 10

我有一个类似的问题,我最终发现:http://superuser.com/questions/79920/how-can-i-diff-two-xml-files

该帖子建议做一个规范的xml排序然后做差异.如果您使用的是linux,Mac,或者如果您的窗口安装了cygwin,则以下内容适用于您:

$ xmllint --c14n FileA.xml > 1.xml
$ xmllint --c14n FileB.xml > 2.xml
$ diff 1.xml 2.xml
Run Code Online (Sandbox Code Playgroud)

  • 这并不能回答问题。规范化不会对元素进行排序(因为具有不同元素顺序的两个 XML 文件通常在语义上不同)。提供的命令不适用于提供的示例。 (3认同)