000
30.11.2010, 11:59 Uhr
Oc86
|
Hallo @all,
ich stehen vor dem folgenden Problem: Ich habe hier einen große XML datei(20MB). Der Baum hat in etwa 20000 Blätter. Weil ich nicht am ganzen Baum änderungen vornehmen werden, extrahiere ich von dieser Datei eine Subbaum, indem ich einen großen Teil der Blätter des Baumes beim extrahieren lösche. An dieser kleineren XML datei mache ich einige Änderungen und lasse mir eine diff ausgeben. Und hier fängt mein Problem an: Alle diff-Anwendungen die ich bis jetzt benutzt hatte , geben mir in der diff, xpath Ausdrücke aus, die sich auf den kleinen Baum beziehen. Wie z.b. xpath = /..../Chid[250] : Holen die Referenz zum 250. Kindsknoten. Diese diff kann ich aber nicht auf die Große Datei anwenden, weil der 250. Kindsknoten ein Knoten sein kann(in der große XML-Datei), denn ich vorher nicht extrahiert hatte.(die Reihenfolge hat sich ja geändert). Was ich gerne haben würde , wäre, dass er mir den XPath Ausdrück bzgl. eines attributes geben würde(=> für die Blätte). Bei mir wäre es das Attribute 'id' . Der ist bei mir eindeutig und wird als uuid generiert.
Kennt jemand die Lösung meines Problems ??
Zusammenfassung :
1.) großexml.xml -----> file1.xml (extrahiertes Subbaum)
2.) file1.xml + file2.xml(geändertes file1.xml) ----> diff.xml (XUpdate datei oder ähnliches)
3.) patch der großexml.xml mit diff.xml
Ich hoffe, ich konnte mein Problem erständlich erläutern
Grüße Oc86 |