1. ホーム
  2. xml

[解決済み] XMLファイルの比較方法

2022-03-03 19:43:08

質問

あるツールで生成された2つのXMLファイル(XSD)があります。
このツールは要素の順番を保持しないので、内容は同じでもテキストとして比較すると、ファイルが異なるので結果的に同じになります。
比較する前に要素を並べ替えることができ、ドキュメントのテキスト比較ができるツールはないでしょうか? もちろん、並べ替えは再帰的に行う必要があります。

データの例
ファイルA

<xml>
  <A/>
  <B/>
</xml>

ファイルB

<xml>
  <B/>
  <A/>
</xml>

解決方法は?

私も同じような問題を抱えていて、最終的に見つけました。 http://superuser.com/questions/79920/how-can-i-diff-two-xml-files

その投稿では、正規のXMLソートをしてから差分を取ることを提案しています。LinuxやMac、あるいはWindowsにCygwinのようなものをインストールしているのであれば、以下の方法でうまくいくはずです。

$ xmllint --c14n FileA.xml > 1.xml
$ xmllint --c14n FileB.xml > 2.xml
$ diff 1.xml 2.xml