web-dev-qa-db-ja.com

XMLファイルを比較するためのツールまたはライブラリ

Xmlを理解するXML比較ツールを探しています。 WinMergeやBeyond Compareのように、行ごとに比較することはできません。

理想的なソリューションは、Word 2007がトラックの変更を表示する方法と同様の変更を表示するソリューションです。 DeltaXML はこれを行いますが、実際のGUIは「そのまま」ではなく、ユーザーあたり500ドルです!:

ExamXml はそのまま使用できますが、紛らわしい方法で違いが表示されます。これには前後の概念はありません。違いを示すだけです。

alt text
(ソース: a7soft.com

ツールには、属性をキーとして使用するという概念が必要です。そのため、要素の並べ替えられたリストが変更されたとは見なされません。 DeltaXMLはこれを行いますが、スクリーンショット用に正しく設定できませんでした。


UPDATE:

これまでのところExamlXMLは、箱から出してすぐのソリューションです。しかし、DeltaXMLの変更管理の概念が欠けています。いくつかのユーザビリティの問題が発生します。

DeltaXMLは、私が必要とするほとんどの解決策ですが、すぐに使える機能が多いほうがよいでしょう。 DeltaXMLには、APIを呼び出すためのJavaコードの記述と、xmlを期待される入力に変換するためのXSLの記述が必要です。

41
joe

私が問題を理解していれば、XMLファイルをデータストレージとして使用するアプリケーションがあり、GUIは「テクニカル」タグ名を「ユーザーフレンドリー」ラベルに抽象化します。したがって、同じように違いを見るのは自然な拡張です。また、あなたのアプリケーションには、「抽象化」の概念に従う差分機能がないと想定しています。

検索を行ったところ、強調表示機能に近づいているように見える1つのアプリ( ExamXML )が見つかりました。評価版をダウンロードして、ファイルをテストしました。

http://www.programmedintheusa.com/images/stack547399.png

それは違いを強調するのにかなり良い仕事をします。それはかなりインタラクティブなようで、いくつ違いがあるかがポップアップします。使用している色を変更できるようですので、グレーと白を使用してタグの強調を解除できます。また、ユーザー向けに事前設定できるオプションもたくさんあるようです。

タグはコンテンツのコンテキストを提供するものであるため、タグ名を表示しないXML比較ツールを見つけるのは難しいでしょう。コンテキストを削除すると、表示されているデータを理解するのが難しくなります。とにかく、このツールが役に立つかもしれません。また、これらのツールのいくつかをユーザーに見せて、ユーザーが許容できることを確認しようとしましたが、時には驚かれるかもしれません。お役に立てれば!

14
John Virgolino

マイクロソフトの XML NotePad について誰も言及していないことに非常に驚いています

それは無料で、かなり良い比較を作成して、どの要素/属性が変更、移動、削除されたかなどを伝えることができます:

(スクリーンショットが少し広い場合は申し訳ありません)。

XLSをXMLファイルに適用して、さまざまな編集操作を行うこともできます。試してみる価値があります。

17
Sylverdrag

SourceGearのDiffMergeは、シングルユーザーには無料です。

http://www.sourcegear.com/diffmerge/

5
Mike L

私は DeltaXML + XSLT変換を試して、必要な特定の結果を得ることができます。 XMLでプレーンテキスト比較ツールを使用する場合の問題の1つは、コンテンツ自体が変更されていなくても、XMLドキュメントの物理的な形式(インデントなど)が変更される可能性があることです。これにより、多くの誤検知が発生する可能性があります。 DeltaXMLは、ドキュメントベースのXMLを比較するための非常に優れたツールです。

また、ユーザーが使用するエディターによっては、XML差分が組み込まれている場合があります。たとえば、Arbortext Editorには、タグではなくテキストを表示して、変更を強調表示/取り消し線で表示する優れたツールがあります。

3
James Sulak

Altova diffDog XML SpyとdiffDogは例外的なツールです。冷たい死んだ手からそれらをこじ開けてください。

3
jmcecil

@BobbyShaftoeがすでに言及したように、Beyond Compareは優れています。ただし、マージには Araxis Merge を使用します。よく似た目的で使用します。

ユーザーの非技術的な能力についてのあなたのコメントに関して:

回答ありがとうございます...しかし、これらはすべて技術的すぎるようです。私のユーザーは通常、XMLオーサリングツールによって抽象化されるため、xmlタグを表示しません。テキストコンテンツの違いを表示するが、xmlタグを表示しない(または強調しない)ツールはありますか?.

私はこれを捨てるつもりです:ユーザーは学ぶべきです。 XMLファイルをマージおよび変更している場合(私はレコード保持またはアプリケーション構成の可能性があると想定しています)、少なくともそれらが何をしているかの基本的な理解が必要です。リストされているツールを使用して作業を完了するために、XMLの熟練者である必要はありません。

ただし、ユーザーが実行しているジョブの基本的な知識をユーザーに要求することが不可能な場合は、サードパーティのソフトウェアに頼るのではなく、自分で構成ユーティリティを作成してエンドユーザーに提供することをお勧めします。

2
Matt Jordan

MicrosoftのXML Notepadを試してください MSDN XML 比較XMLファイルがあります。それがどれほど良いかわからない。

1
Aussie Craig

試しましたか examdiff ?もちろん、それはまだ技術ツールですが、扱いは簡単です。ファイルを比較するためのドラッグアンドドロップインターフェイスがあります。

0

XML Diff and Patch GUI Tool (MSDNのサンプルコード)は、ニーズを少しよく満たしています。タグは表示されますが、テキストの違いが強調されます。コードを取得したので、もう少し努力して、要件に合わせてより正確に調整できます。

サンプルは比較的古い(2004年7月、2002年にルーツを持つ)ものの、Visual Studio Express C#2008に簡単にアップグレードできます。 sample をMSDNサイトからダウンロードするときに、インストーラMSIが「.NETコードサンプルのSQLXMLバルクロード」に言及している場合は、先送りにしないでください。そうではありません。

0
Dan Blanchard

いつもkdiff3を使っています。使い方は簡単で、最大3つのファイルを比較できます。 http://kdiff3.sourceforge.net/

0
mspoerr

私はこれが古いスレッドであることを知っていますが、 Project:Merge は、XMLファイルの2方向および3方向のマージと比較を管理できる新しいWindowsアプリケーションです。 (3方向の操作では、どちらも共通の基本ファイルから派生した2つのファイルがあると想定しています。)

ファイルで完全に機能するように個々の要素を識別する方法を伝える必要があるかもしれませんが、それは簡単で、一度だけ実行する必要があります。

0
user420442

プログラムまたはUIのいずれかで、XmlDiff、XmlPatchツール、およびMSDNのライブラリを使用できます。動作の詳細については、ガイドをご覧ください。

http://msdn.Microsoft.com/en-us/library/aa302294.aspx

0
Ray Lu

Oxygen XMLエディターには、私が見つけた最高のコレクションXML diffツールがあります。比較するためのいくつかの異なるアルゴリズムがあるので、デフォルトが機能しない場合は、Syntax Awareまたは他のアルゴリズムのいくつかを試してください(現在、私はバージョン8を使用していて、バージョン10にアップグレードしていないので、ymmvですが、私は疑いますXML diffが悪化していることを確認します)。

0
Kris Erickson