AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML Delta

Ein Thema von Pfaffe · begonnen am 10. Sep 2012 · letzter Beitrag vom 10. Sep 2012
Antwort Antwort
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#1

XML Delta

  Alt 10. Sep 2012, 11:41
Aus meiner Datenbank exportiere ich eine xml-Datei. Diese wird extern geändert. Die xml-Datei ist recht groß, aber die Änderungen sind gering. Der Import in die Datenbank dauert mehrere Stunden.
Gibt es ein Delphi-Algorithmus oder ein Tool, welches mir eine xml-Datei nur mit den geänderte Daten zurück gibt, also z.B. Get_XML_Delta(const xml1, xml2: string): string;?
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: XML Delta

  Alt 10. Sep 2012, 11:55
rdiff sollte helfen - direkt etwas mit delphi kenne ich nicht

gibts hier rdiff commandline

Dann lies dir das hier durch - speziell das Kapitel "Background Information - Using Rdiff"

//Edit Du müsstest dann natürlich den Diff selbst auswerten
Sven Harazim
--
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#3

AW: XML Delta

  Alt 10. Sep 2012, 11:56
Was dauert denn daran Stunden? Das Auslesen der XML oder das Schreiben in die Datenbank?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

AW: XML Delta

  Alt 10. Sep 2012, 12:09
Nja, direkt in Delphi...

wenn die Reihenfolge der Knoten berücksichtigt werden muß (kommt auf's Selbe hinaus, wie beim schon genannten DIFF)
- man läd beide Dateien
- geht beide Dateien Knoten für Knoten durch und wenn sich was unterscheidet, dann fügt man das in eine neue XML ein, oder verarbeitet es direkt



wenn die Reihenfolge egal ist
- man geht die erste Datei durch
- sucht die entsprechenden Knoten in der anderen XML
- Unterschiede werden dann übernommen/verarbeitet

dann
- gleiche Knoten entweder löschen
- und alles von der 2 XML übernehmen
oder
- die zweite XML ebenfalls durchgehn
- und alles was in der Ersten nicht gefunden wird, übernehmen/verarbeiten (Unterschiede/Änderungen ignorieren, denn diese wurden ja schon behandelt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#5

AW: XML Delta

  Alt 10. Sep 2012, 12:23
Microsoft bietet zwei Commandline-Tools XMLDiff und XMLPatch. Dabei erzeugt XMLDiff aus zwei XML-Dateien ein Diffgram in der die Änderungen in maschinenlesbarer Form (XML) dargestellt sind. Dabei werden auch so Sachen wie andere Reihenfolge der Attribute oder Child-Nodes korrekt behandelt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz