Einzelnen Beitrag anzeigen

padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: (unbekannte) XML Dateien zusammenführen bzw. mergen

  Alt 22. Sep 2009, 10:37
Wow, Vielen Dank.


Aber vielleicht hätte ich vorher noch genauer sagen sollen, was ich brauche.

Es sollen zwei XML Dateien miteinander verbunden werden, aber, bereits vorhandene Knoten sollen vorhanden bleiben, bzw. bei Änderungen eines "Wertes" geändert werden.

aBaseXMLfile:

Delphi-Quellcode:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
   <nodes>
      <node>
         <Kenn>Kennung1</Kenn>
         <Wert>Wert1</Wert>
      </node>
      <node>
         <Kenn>Kennung2</Kenn>
         <Wert>Wert2</Wert>
      </node>
      <node>
         <Kenn>Kennung3</Kenn>
         <Wert>Wert3</Wert>
      </node>
      <node>
         <Kenn>Kennung4</Kenn>
         <Wert>Wert4</Wert>
      </node>
   </nodes>
</root>

aAnotherXMLfile:

Delphi-Quellcode:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
   <nodes>
      <node>
         <Kenn>Kennung1</Kenn>
         <Wert>Wert1</Wert>
      </node>
      <node>
         <Kenn>Kennung2</Kenn>
         <Wert>Wert22222222</Wert>
      </node>
      <node>
         <Kenn>Kennung5</Kenn>
         <Wert>Wert5</Wert>
      </node>
   </nodes>
</root>

soll werden zu
aTargetFile:

Delphi-Quellcode:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
   <nodes>
      <node>
         <Kenn>Kennung1</Kenn>
         <Wert>Wert1</Wert> <?bleibt?>
      </node>
      <node>
         <Kenn>Kennung2</Kenn>
         <Wert>Wert22222222</Wert> <?wird ueberschrieben?>
      </node>
      <node>
         <Kenn>Kennung3</Kenn> <?bleibt?>
         <Wert>Wert3</Wert>
      </node>
      <node>
         <Kenn>Kennung4</Kenn> <?bleibt?>
         <Wert>Wert4</Wert>
      </node>
      <node>
         <Kenn>Kennung5</Kenn> <?wurde hinzugefuegt?>
         <Wert>Wert5</Wert>
      </node>
   </nodes>
</root>
Bei der von Microsoft angesetzen Lösung (und von himitsu umgesetzen Lösung) werden die Unterknoten nicht berücksichtigt, sondern einfach neue angelegt.
Ich hatte das aber auf der Microsoftseite so verstanden, dass es genau dieses können soll. Ok, dass Beispiel war nicht in der Art gestalltet.

Geht das denn überhaupt?

Edit:
Beim drübernachdenken kommt mir, dass die XML Dateien dann nicht unbekannt sein dürfen. Z.B. der Unterkenner "Kenn" müsste ja bekannt sein, damit die Parameter zugordnet werden können.
Obwohl, wenn man innerhalb der Schleife eine rekursive Unterschleife einbaut, sollte man auch unbekannte Unterknoten herausfinden....jetz bin ich raus
  Mit Zitat antworten Zitat