How to merge a nodes from two different xml files using DOM library lazarus / 62-General ---------------------------------------------------------------------- Wujek · 2018-02-23 20:58 I have been looking for a way to merge two different xml files in one file, or move a node from one to another. It is possible using DOM ? If yes, please give me an example. Regards Zbig ---------------------------------------------------------------------- Leledumbo · 2018-02-25 07:01 Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$mode objfpc}{$H+} uses  Classes, SysUtils, DOM, XMLRead, XMLWrite; const  XMLHeader = ''; var  ss1,ss2: TStringStream;  xml1,xml2: TXMLDocument;  node,impNode: TDOMNode;begin  try    ss1 := TStringStream.Create(XMLHeader + 'text');    ss2 := TStringStream.Create(XMLHeader + '');     WriteLn('BEFORE:');    WriteLn('XML 1: ' + ss1.DataString);    WriteLn('XML 2: ' + ss2.DataString);     ReadXMLFile(xml1,ss1);    ReadXMLFile(xml2,ss2);     node := xml1.DocumentElement.FirstChild;   // xm1.root.node    impNode := xml2.ImportNode(node,true);     // import a.k.a clone + assign new owner document    xml2.DocumentElement.AppendChild(impNode); // make it a new child of xml2.root    xml1.DocumentElement.RemoveChild(node);    // remove from xml1.root     // stream position will be at the string end after ReadXMLFile above, so we need to    // reset it to the initial position, otherwise it will be appended instead of overwritten    ss1.Seek(0, soBeginning);    ss2.Seek(0, soBeginning);    WriteXMLFile(xml1,ss1);    WriteXMLFile(xml2,ss2);     WriteLn();    WriteLn('AFTER:');    WriteLn('XML 1: ' + ss1.DataString);    WriteLn('XML 2: ' + ss2.DataString);  finally    xml1.Free;    xml2.Free;    ss1.Free;    ss2.Free;  end;end. Merging is just a variation of this, I'll leave that as an exercise for you.