XML-Dateien mit Java vergleichen
-
Servus,
es geht um zwei recht spezielle XML-Dateien die meist viele Änderungen, aber wenig interesante haben, ich möchte also einen XML-Diff machen und dann eben für die Enduser sozusagen semantische "Brillen" aufsetzen können.
Wie würdet ihr das machen? Also ich müsste erstmal generell einen kompletten Vergleich machen und dann noch eine eigene Verarbeitung draufsetzen.
Habt ihr da so bestimmte Stichworte für mich? Würdet ihr das mit SAX oder ähnlichem machen? Alternativ könnte ich anstatt Java auch Python benutzen, würde aber Java bevorzugen
-
Also ich hatte vor längerer Zeit auch mal das Problem von 2 XML-Dateien die Unterschiede herauszufiltern, sprich letztendlich das Delta(den Unterschied) davon zu generieren. Frei verfügbare Tools/Bibs hatte ich damals keine für gefunden.
Letztlich war es so, dass man erst mal ein sinnvolles Mapping der XML-Struktur auf Java-Klassen gemacht hat, so dass man beim Parsen dann alles in entsprechende Java-Klassen-Hierachien gepackt hat. Der Vergleich fand dann nur auf diesen Java-Klassen (da konnte man dann auch praktischerweise equals und Konsorten benutzen) in relativ einfachen - ich sag jetzt mal - bubble-sort-ähnlichen Schleifen-Konstrukten statt. Danach hatte man dann die Unterschiede in Java-Klassen, und hätte daraus dann z.B. wieder eine XML-Datei generieren können, sprich ein Mapping von Java-Klassen auf XMl machen können.
Hat bei meinem Fall u. meinen zu vergleichenden XML-Dokumenten sehr gut u. reibungslos geklappt.Ob das jetzt der beste Weg ist, keine Ahnung, und obs mittlerweile da doch schon vorgefertigte Sachen gibt weiß ich auch nicht. Ist schon etwas länger her.