Einzelnen Beitrag anzeigen

padavan

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

(unbekannte) XML Dateien zusammenführen bzw. mergen

  Alt 22. Sep 2009, 10:06
Hallo,

Wie kann ich zwei mir unbekannte XML-Dateien zusammenführen (mergen)?
(Abgesehen vom Root-Knoten, der heißt immer gleich. Spielt vielleicht eine Rolle für den ein oder anderen Lösungsansatz)

Hier gibt es ein Beispiel von Microsoft, habe Versucht es auf Delphi um zu schreiben, aber es will nicht funktionieren.

Delphi-Quellcode:
procedure XMLmergeBasefileWithAnotherFile(aBaseXMLfile: string; aAnotherXMLfile: string; aTargetFile: string);
var
  XmldocBase : DOMDocument;
  RootBase : IXMLDOMNode;
  NodeBase : IXMLDOMNode;
  ListBase : IXMLDOMNodeList;

  XmldocAnother : DOMDocument;
  RootAnother : IXMLDOMNode;
  NodeAnother : IXMLDOMNode;
  ListAnother : IXMLDOMNodeList;

  i, j : integer;
begin



  // -- Base file laden --
  XmlDocBase := CoDOMDocument.Create;
  if not xmlDocBase.load(aBaseXMLfile) then exit;
  RootBase := XmlDocBase.documentElement;
  ListBase := RootBase.childNodes;

  // -- Another file laden --
  XmldocAnother := CoDOMDocument.Create;
  if not XmldocAnother.load(aAnotherXMLfile) then exit;
  RootAnother := XmlDocBase.documentElement;
  ListAnother := RootAnother.childNodes;


  NodeBase := RootBase.firstChild;
  NodeAnother := RootAnother.firstChild;


  while NodeAnother.NextSibling <> nil do
  begin
    NodeBase.appendChild(NodeAnother);


    NodeAnother := NodeAnother.NextSibling;
  end;



  // -- gemergte Base XML speichern --
  XmldocBase.save(aTargetFile);


end;
Gibt es noch eine andere Möglichkeit?


Ich nutze zur Zeit Delphi 6 Enterprise, mir steht also das TXMLDocument zur Verfügung, und ich habe die MSXML_TLB importiert.

Vielen Dank schon mal

Padavan
  Mit Zitat antworten Zitat