1

2つのXMLファイルがあります。それらは似ていますが、2つのノードがあり、どちらのファイルにも1つしかありません。このようなドキュメントの2つのセットを1つのドキュメントにマージし、最初にサイドAのノードを取得し、次にサイドBのノードを取得します。

私はdiffツールの経験豊富なユーザーではなく、どこかで開始するためにKDiff3をダウンロードしました。誰かが私を正しい道に導いてくれますか?

--編集--diff
ツールを見つけることは、私が自分で管理できるものです。
しかし、これらのツールの1つを作成する方法(どちらでも構いません)は、最初にfile1から、次にfile2からパーツを挿入することにより、自動的にマージを実行します。私が探しているのはです。これはかなり大量のファイルなので、マージプロセスに介入しないことが望ましいです。

4

4 に答える 4

1

これは、作成するソフトウェアのように聞こえますが、見つけるソフトウェアのように聞こえます。

独自のロールを作成する場合は、両方の XML が有効であることを確認する追加のチェックを追加できます。

于 2009-01-21T15:17:05.990 に答える
1

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 クラスもいくつかあります。これらのシステムのいずれかを使用するには、スクリプトを作成する必要があると思います。

于 2009-01-29T19:29:30.033 に答える
1

差分マージ. 無料で、Windows、Mac OS X、および Unix で動作します。

于 2009-01-21T14:33:15.517 に答える
0

KDiff3 は、両方の入力バージョンを出力ファイルに入れることができます。A と B というラベルの付いたボタンがあります。いずれかをクリックすると、1 つのバージョンがマージ結果に配置されます。または、両方をクリックすると、両方のバージョンが含まれます。これらのボタンをクリックする順序は、挿入される行の順序に影響します。

ディレクトリ全体をマージすることもできます。

唯一の問題は自動化にあるようです。

KDiff3 のキーボード ショートカットは非常に豊富な方法で構成できるので、ここを調べてから、キーボード スクリプト アプリケーションを使用することをお勧めします。

他にもっと簡単な方法があるかもしれません:-)

于 2009-01-21T14:36:01.910 に答える