2009-02-13 7 views
40

Ich bin auf der Suche nach einem XML-Vergleichs-Tool, das XML versteht. Es kann kein Zeilenvergleich wie WinMerge oder Beyond Compare sein.Tool oder Bibliothek zum Vergleichen von XML-Dateien

Eine ideale Lösung wäre eine, die Änderungen zeigt, die der Art ähneln, in der Word 2007 Änderungen an der Spur anzeigt. DeltaXML tut dies, aber mit einem echten GUI 'out of the box' nicht kommen und $ 500 pro Benutzer !:

http://i41.tinypic.com/os8k5k.jpg

ExamXml Werke aus der Box, sondern zeigt die Unterschiede in einer verwirrenden Art und Weise. Es ist nicht ein Konzept vor hat und nach, es zeigt nur die Unterschiede:

alt text http://www.a7soft.com/images/examxml1_.gif

Das Werkzeug sollte das Konzept der Verwendung Attribute als Schlüssel hat, so dass sie glaubt nicht, dass eine neu geordnet Liste Elemente hat sich geändert. DeltaXML tut dies, aber ich konnte es nicht richtig für den Screenshot einrichten.


UPDATE:

Bisher ExamlXML ist das Beste aus der Box Lösung. Es fehlen jedoch die Change-Management-Konzepte von DeltaXML. Daraus ergeben sich einige Usability-Probleme.

DeltaXML ist so ziemlich die Lösung, die ich brauche, aber etwas mit mehr Funktionalität aus der Box besser wäre. DeltaXML erfordert das Schreiben von Java-Code zum Aufruf der API, zusammen mit dem Schreiben von XSL, um die XML in die erwartete Eingabe zu transformieren.

+0

Bitte klären Sie mehr - in Ihrem Beispiel, welche Ausgabe sollte das mutmaßliche Diff-Tool produzieren? –

+1

Wer lehnt alle Antworten auf diese Frage ab? Ziemlich kindisch. – BobbyShaftoe

+0

Ich habe eine Reihe von ihnen selbst aufgewertet, da ich denke, dass alle genannten Dienstprogramme hochwertige Anwendungen sind, die nichttechnische Leute mit etwas Training bewältigen können. –

Antwort

13

Wenn ich Ihr Problem verstehe, haben Sie wahrscheinlich eine Anwendung, die XML-Dateien als Datenspeicher verwendet und die GUI abstrahiert die "technischen" Tag-Namen in "benutzerfreundliche" Etiketten - wieder nehme ich an. Es wäre also eine natürliche Erweiterung, Unterschiede auf ähnliche Weise zu sehen. Ich nehme auch an, dass Ihre Anwendung keine Diff-Funktion hat, die dem "Abstraktions" -Konzept folgt.

Ich habe einige Suche und fand eine App (ExamXML), die mit Hervorhebung Features zu kommen scheint. Ich habe die eval-Version und getestet Ihre Dateien dagegen:

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

Es hat einen ziemlich guten Job, die Unterschiede hervorzuheben. Es scheint ziemlich interaktiv zu sein und zeigt, wie viele Unterschiede es gibt. Es sieht so aus, als ob Sie die verwendeten Farben ändern können. Vielleicht können Sie Grautöne und Weiß verwenden, um die Tags zu deaktivieren. Es scheint auch viele Optionen zu haben, die Sie auch für Ihre Benutzer voreinstellen können.

Ich möchte darauf hinweisen, dass Sie ein XML-Vergleichswerkzeug finden werden, das die Tag-Namen nicht anzeigen wird, da die Tags den Kontext des Inhalts darstellen. Wenn Sie den Kontext entfernen, wird es schwierig, die angezeigten Daten zu verstehen. Wie auch immer, vielleicht ist dieses Tool hilfreich. Haben Sie auch versucht, Ihren Benutzern einige dieser Tools zu zeigen und zu sehen, was sie zu tolerieren bereit sind, manchmal können sie Sie überraschen. Hoffe das hilft!

+0

Danke John, das ist die beste Antwort bisher. – joe

+0

Was war auf dem Bild bevor es entfernt wurde? Ein Screenshot? –

+0

@JirkaHanika Ja. Nicht sicher, warum es so wegging. –

0

Haben Sie versucht examdiff? Natürlich ist es immer noch ein technisches Werkzeug, aber es ist einfach, mit ihm zu arbeiten. Es hat eine Drag & Drop-Schnittstelle zum Vergleichen von Dateien.

-1

Ich verwende immer kdiff3. Es ist einfach zu bedienen und kann bis zu 3 Dateien vergleichen.

+0

Ist es XML empfindlich? Ich glaube nicht, ich glaube, es behandelt sie nur als einfache Textdateien und damit als Spot-Diffs, die nicht im XML-Infoset vorhanden sind (z. B. eine Änderung der Codierung). – bortzmeyer

+0

Sie haben Recht - es ist nur Textvergleich. – mspoerr

1

Testen Sie XML Notepad von Microsoft MSDN XML es hat einen Vergleich XML-Dateien. Keine Ahnung, wie gut es ist.

5

SourceGear des DiffMerge ist frei für eine Single-User:

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

+0

Stellen Sie sicher, dass in den Voreinstellungen nur Unterschiede angezeigt werden. –

2

Beyond Compare ist ausgezeichnet als @BobbyShaftoe bereits erwähnt hat. Für die Zusammenführung verwende ich jedoch gerne Araxis Merge. Wir verwenden es oft für ähnliche Zwecke.

Soweit Ihre Kommentare über die nicht-technische Fähigkeit Ihrer Benutzer:

Danke für die Antworten ... Aber diese scheinen alle zu technisch. Meine Benutzer sehen die XML-Tags normalerweise nicht, weil ihr XML-Authoring-Tool sie abstrahiert. Gibt es Tools, die Unterschiede im Textinhalt anzeigen, aber die XML-Tags nicht anzeigen (oder deaktivieren)?

Ich werde das hier rauswerfen: Ihre Benutzer sollten lernen.Wenn Sie XML-Dateien zusammenführen und ändern - ich gehe davon aus, dass Sie möglicherweise Aufzeichnungen führen oder Anwendungen konfigurieren -, dann sollten sie zumindest ein rudimentäres Verständnis davon haben, was sie tun. Sie müssen keine XML-Whizzes sein, um die aufgeführten Tools zu verwenden und die Arbeit zu erledigen.

Wenn Sie jedoch von Ihren Benutzern nur ein rudimentäres Wissen über die von ihnen ausgeführten Aufgaben benötigen, würde ich vorschlagen, ein Konfigurationsdienstprogramm selbst zu schreiben und es für Ihre Endbenutzer bereitzustellen, anstatt sich auf Software von Drittanbietern zu verlassen.

0

Sie können finden The XML Diff and Patch GUI Tool (Beispielcode auf MSDN) erfüllt Ihre Bedürfnisse ein wenig besser: Es zeigt immer noch Tags, sondern betont den Unterschied im Text. Da Sie den Code erhalten, können Sie ihn mit etwas mehr Aufwand genauer auf Ihre Anforderungen zuschneiden.

Obwohl die Stichprobe relativ alt ist (Juli 2004 und ihre Wurzeln im Jahr 2002), wird sie problemlos auf Visual Studio Express C# 2008 aktualisiert. Lassen Sie sich nicht abschrecken, wenn Sie das sample von der MSDN-Site herunterladen, wenn das MSI-Installationsprogramm "SQLXML-Massenimport in .NET-Codebeispiel" erwähnt - das ist es nicht!

+0

Danke für den Link. Ich habe das Dienstprogramm auf einige Dateien ausgeführt, die der Benutzer verwenden würde, und die Vergleichsausgabe war ein schönes Format. Leider hat es einige der XML falsch als unterschiedlich markiert, wenn es nicht war. – joe

3

Ich könnte versuchen DeltaXML + eine XSLT-Transformation, um das gewünschte Ergebnis zu erhalten. Ein Problem bei der Verwendung von Klartextvergleichstools mit XML besteht darin, dass die physische Form eines XML-Dokuments (seine Einrückung usw.) sich ändern kann, selbst wenn der Inhalt selbst dies nicht tut, was zu vielen Fehlalarmen führen könnte. DeltaXML ist ein sehr gutes Werkzeug zum Vergleichen von dokumentenbasiertem XML.

Je nach dem Editor, den Ihre Benutzer verwenden, kann auch eine XML-Differenzierung integriert sein. Der Arbortext-Editor verfügt beispielsweise über ein gutes Werkzeug, das den Text (nicht die Tags) mit hervorgehobenen/durchgestrichenen Änderungen anzeigt.

+0

Das sieht nach einer guten Lösung aus, obwohl am teuren Ende ($ 500 pro Benutzer). – joe

0

Entweder programmatisch oder UI, können Sie XmlDiff, XmlPatch-Tools und Bibliothek von MSDN verwenden Für Details, wie es funktioniert, lesen Sie die Anleitung.

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

+0

Ich habe das getestet und es gibt einfach falsche Ergebnisse aus. – joe

3

Altova diffDog XML Spy und DiffDog sind außergewöhnliche Tools. Heb sie aus meinen kalten toten Händen, ein bisschen Zeug.

0

Oxygen XML-Editor hat die beste Sammlung XML-Diff-Tool, das ich gefunden habe. Es gibt mehrere verschiedene Algorithmen zum Vergleich. Wenn der Standard für Sie nicht funktioniert, versuchen Sie es mit Syntax Aware oder einigen anderen Algorithmen (jetzt verwende ich Version 8 und habe nicht auf Version 10 aktualisiert, also ymmv, aber ich bezweifle dass der XML-Vergleich schlechter geworden ist).

17

Ich bin sehr überrascht, niemand erwähnt Microsofts XML NotePad

Es ist kostenlos und es kann ein ziemlich guter Vergleich, telling zu schaffen, die Elemente/Attribute haben sich geändert, verschoben, gelöscht, etc .:

(Sorry, wenn Die Screenshots sind ein wenig breit).

Sie können auch XLSes in die XML-Datei und führen Sie verschiedene Bearbeitungsfunktionen anwenden. Es ist einen Versuch wert.

+1

Können Sie mir sagen, wie Sie zur Vergleichsfunktion gelangen? Vielen Dank. – joe

+2

Sicher.Sie öffnen eine XML-Datei, dann gehen Sie in das "Ansicht" -Menü und klicken Sie auf "XML-Dateien vergleichen" – Sylverdrag

+0

Ich habe gerade versucht, XMLNotepad und ich fand es sehr interessant. Danke, dass Sie das vorgeschlagen haben. – paradisonoir

0

Ich weiß, dass dies ein oldish Thread ist, aber Project: Merge ist eine neue Windows-Anwendung, die Zwei-und Drei-Wege-Zusammenführungen und Vergleiche von XML-Dateien verwalten kann. (Eine Drei-Wege-Operation setzt voraus, dass es zwei Dateien gibt, die beide von einer gemeinsamen Basisdatei abgeleitet sind.)

Sie müssen ihm vielleicht sagen, wie Sie einzelne Elemente identifizieren können, damit sie perfekt auf Ihren Dateien funktionieren, aber das ist einfach genug und du musst es nur einmal tun.

Verwandte Themen