無料のXml Diff / Mergeツールはありますか?[閉まっている]


105

.netアプリケーションにいくつかの構成ファイルがあり、アプリケーション設定要素などをマージしたいのですが。

私はいつものように手動でそれを始めようとしていましたが、どこかにXML diff GUIツールが利用できるはずだと思いました。

ツールは、要素レベルに移動して、違いなどを比較および表示できます。

ただし、Googleは実質的な無料ツールの結果や価値のあるものに対するヒントを提供していません。

そのようなツールはありますか?それはとても便利ですか?無料で?

前もって感謝します。:)

編集:

ここでは、エラーが発生しやすく、面倒な手作業を1分の簡単なタスク(および自動化の可能性)に変える機能を少し説明します。

KDiff3では、ディレクトリ全体のdiff / mergeを実行できます。非常に正確で、ユーザーフレンドリーで明確な階層的な差分があります。私は同様の解決策を見つけることに興味がありましたが、ディレクトリ階層ではなく、XML要素階層です。

そのようなオープンソースソフトウェアがない場合は、この機能を提供するためにCodePlexで作成することを検討しています。

回答:


11

KDiff3はXML固有ではありませんが、無料です。これは、テキストファイルを比較してマージするという素晴らしい仕事をします。


3
現時点ではKDiff3を使用していることに同意しますが、要素レベルまで下がる可能性のあるXML専用のツールはすばらしいでしょう。
ラッセル

2
私はこの観点から考えていました:KDiffがディレクトリの階層的な差分を行う方法、要素の階層的な差分も機能する可能性があります。したがって、要素が変更された場合、同意します。親要素にも変更があったとフラグを立てる必要があります。
ラッセル

25
誰もがxmlで子ノードが特定の順序であるとは限らないことを理解しているため、あるファイルから次のファイルへの順序が異なることを報告した「ツール」は、実際のxml準拠のツールではありません

7
順序が変わった場合、要素は異なります。問題のXMLドキュメントのセマンティクスに応じて、順序が重要な場合とそうでない場合があります。たとえば、XHTMLでは明らかに順序が重要です。
ジョージルンド

7
ポイントは、通常のdiffツールが行ベースで機能することです。たとえば、差分の形式を理解するCSVファイル用の特定の差分ツールがあります。その理解が深ければ、より効果的に差異が発生する可能性があります。優れたXML比較ツールは、XMLを解析し、スキーマを使用して、たとえば順序が重要かどうかなどの制約を決定し、その知識を使用してはるかに効果的な比較/マージエクスペリエンスを提供できます。
Stijn de Witt 2017

32

WinMergeを使用しているファイル比較ツールご覧ください。XMLドキュメントを比較する機能があります(DisplayXMLFilesプレフィルターを有効にすることもできます)。

DisplayXMLFiles.dll-このプラグインは、タブと改行を挿入することにより、XMLファイルをきれいに印刷します。これは、便利な場所に改行がないXMLファイルに役立ちます。

WinMergeの動作

機能比較表もご覧ください。


6
+1 Winmergeバージョン2.12.4.0; メニュー「プラグイン」->「リスト」->「プラグインを有効にする」にチェックを入れます。メニュー「プラグイン」→「自動解凍」にチェックを入れます。拡張子が.xmlのファイル名のXMLファイルでテストしましたが、動作するようです。
アレッサンドロジャコプソン

10
属性の順序が異なる場合はうまく処理できないため、状況によっては有用性が制限される可能性があります。
Michael Kohne

これは最初のソート要素や属性に任意のXMLファイルに変換使用します。 stackoverflow.com/questions/4091085/xslt-to-sort-nodes-by-name
ラリー・デヴィッド

1
プラグインはもう利用できないようです。
フェルナンドゴンザレスサンチェス

それは、インストーラではない私はなぜわからないんだけど、私はビットバケット/ソースコード(SourceForgeのDL)に自分のsrcレポからそれを得ることができました:bitbucket.org/winmerge/winmerge/src/...
aCodeMonkey

21

XMLファイルの比較とマージの問題を特に解決するWindowsアプリケーションを作成してリリースしました。

プロジェクト:Mergeは、任意のXMLファイルの2方向および3方向の比較とマージを実行できます(2つのファイルは、共通ベースファイルの独立したリビジョンと見なされます)。特に、属性値や子要素のコンテンツなどによって入力ファイル内の要素を識別するように指示できます。

コマンドラインから完全に制御でき、ファイル間の違いを含むテキストレポートを生成することもできます。

プロジェクト:3つのXMLファイルのマージマージ


こんにちは@ジェームス情報をありがとう。明らかにそれが無料であるといいのですが、それはいくつかの非常にクールな機能を提供します-そして、あなたの上の例は、このツールが非常に役立つ理由として古典的です!投稿ありがとうございます。:)
ラッセル

私はProject :: Mergeを試してみましたが、残念ながらそれは私の仕事に対処することができませんでした。私はパラスでHTMLテキスト(持っている<p>(のような書式を追加されます)<i><em>)。したがって、Project :: Mergeは、完全なパラが変更されたことを示しています。詳細な単語分析は行いません。
dma_k

はい、申し訳ありませんが、XHTML(レガシーHTMLを実行することはありません)のサポートは、XMLブロック内のテキストの相違と同様に、その点でかなり制限されています。これまでのほとんどの作業は、自由形式の文字データの範囲と使用法が制限されている構成スタイルのXMLファイルに焦点を当ててきました。うまくいけば、今後のリリースでProject:Mergeのこの領域を改善します。

2
-1、OPはフリーソフトウェアについて尋ねた。Project Mergeはトライアルウェアであり、3年間更新されていません。
yourbuddypal 2014

3
Project:MergeはOso XML Mergeに置き換えられました:osocorporation.com/xmlmerge/index.php
leetNightshade

15

ここにいくつかのJavaベースのXML差分およびマージツールがあります。

Javaで記述されたオープンソースのXML Diff

追加されたリンク:


2
ご指摘のリンクからソフトウェアへのリンクを見つけることができません。
ラッセル

ええ、私もです!少しググる必要があるかもしれません...
Chris Fulstow、2009

3

TortoiseSVNに含まれているTortoiseMergeを使用していますプログラムに

このスレッドでは、XML専用ではないFile Diffツールについて説明しましたが、

/programming/1830962/file-differencing-software-on-windows


1
S.Markに感謝します。epotterで述べたように、私はすでに一般的なファイルの差分にKDiff3を使用していますが、XML固有の差分ユーティリティが利用可能な場合はそれを使用します(利用できない場合はオープンソースのユーティリティを起動します:))。
ラッセル

>> (if not, I will start up an open-source one :)わあ、すごい!楽しみにしています。リンクが始まったらここのどこかにドロップしてください。
YOU

3

これはGUIツールではありませんが、私の簡単なテストでは、diffxmlはがある。作者は、ネストされた要素の差分を標準化された方法で表現することの複雑さについて考えているようです(彼のDUL-Delta Update Language仕様)。

彼のツールをインストールして実行すると、生のテキスト出力は非常に明確で簡潔であると言えます。GUIツールと同じ程度の即時の心配はありませんが、出力がDULとして標準化されているとすれば、おそらくそれを利用して、視覚的な表現を生成するツールを構築することができます。私は確かにそれを見たいです。

著者の「リンク」セクションは他のいくつかのXML差分ツールを参照していますが、投稿で述べたように、それらはすべて独自仕様です。


4
私の経験は次のとおりです。XMLツールで期待されるものである要素の並べ替えをまったく処理できない(オプションとして、順序が重要な場合があるため)、最小限のdiffではなく、変更された要素全体を表示します。 。基本的に、大きなセマンティックの変更なしに大きなフォーマットの変更がある場合、diffファイルはまったく新しいXMLファイルです。
SilverbackNet 2013年

3

Pretty DiffツールはXMLを念頭に置いて作成されました。「マークアップ」のオプションをクリックしてください。

http://prettydiff.com/


しかし、それはオンラインツールですよね?左から右に変更を適用したり、マージしたりするにはどうすればよいですか?
dma_k

また、並べ替えのオプションを変更する必要があります。そうしないと、移動したときにXML要素に変更のフラグが付けられます(XMLでは順序は関係ないため、変更として表示されません)。ただし、ネストされたセクションはコンテンツに基づいて並べ替えられないため、要素の順序が変更されただけで大きなXMLブロックが追加および削除されるため、きめ細かなdiffを取得することはできません。
Malvineous




0

CodeCompareツールを使用することをお勧めします。XMLデータのネイティブの強調表示をサポートしており、タスクに適したソリューションになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.