Moin!
Ich bin gerade dabei, ein Programm zu schreiben, welches die Unterschiede zwischen zwei
XML-Dateien ausgibt. Allerdings soll das ziemlich spezielle Kriterien erfüllen:
[file1.xml]
XML-Code:
<model>
<constants>
<constant name="const_01" value="1" />
<constant name="const_02" value="1" />
</constants>
<classes>
<class name="cl_01">
<attributes>
<attribute name="attr_01" value="1" />
<attribute name="attr_02" value="1" />
</attributes>
</class>
</classes>
</model>
[file2.xml]
XML-Code:
<model>
<constants>
<constant name="const_01" value="2" />
<constant name="const_03" value="1" />
</constants>
<classes>
<class name="cl_01">
<attributes>
<attribute name="attr_01" value="2" />
</attributes>
</class>
<class name="cl_02" />
</classes>
</model>
[result.xml]
XML-Code:
<model>
<constants>
<added>
<constant name="const_03" value="2" />
</added>
<modified>
<constant name="const_01" oldvalue="1" newvalue="2" />
</modified>
<removed>
<constant name="const_02" value="1" />
</removed>
</constants>
<classes>...</classes>
</model>
Habt ihr irgendwelche Anregungen, wie ich das am Besten lösen könnte?
Ich verwende Delphi7 und MSXML4. Bisher habe ich folgendes versucht:
- alle Elemente von file2 durchgehen
- Element in file1 vorhanden
- ja: alle Attribute überprüfen
- Attributwert geändert
- Element in Node "modified" einhängen
...
Da bin ich allerdings kläglich gescheitert. Ist wohl nicht mein Tag heute.
Ich würde mich über Anregungen eurerseits freuen.
Schöne Grüsse,
Stefan