xml の「ノード」が何らかの形で類似している場合、これは標準の diff ツールで行うには非常に問題になる可能性があります。例えば:
ファイル1:
1 <node id="1" />
2 <node id="2a">
3 <content item="1"/>
4 <content item="2a"/>
5 </node>
6 <node id="3" />
ファイル2:
1 <node id="1" />
2 <node id="2b">
3 <content item="1"/>
4 <content item="2b"/>
5 </node>
6 <node id="3" />
標準の diff ツールは、行 2 と行 4 をマージする必要があるとして強調表示しますが、file2 から行を自動的に追加したとしても、無効な xml ファイルになってしまいます。
1 <node id="1" />
2 <node id="2a">
2 <node id="2b">
3 <content item="1"/>
4 <content item="2a"/>
4 <content item="2b"/>
5 </node>
6 <node id="3" />
xml 対応の diff/merge ツールが本当に必要です。XmlMergeと呼ばれるものの説明と、あなたが求めていることを正確に実行していることを示す例を見つけました。EL4Jの一部です。
XUpdateと呼ばれる休眠中の取り組みがあり、その周辺にはかなりの量のツールがあります (XUpdate 差分の生成と適用の両方に使用されます)。異なる基盤を使用する.net クラスもいくつかあります。これらのシステムのいずれかを使用するには、スクリプトを作成する必要があると思います。