Sample code for 30+ languages & platforms
Delphi DLL

Insert after Node with Tag

See more XML Examples

Demonstrates how to insert a new node as a sibling directly after a specified node having a given tag.

Note: This example requires Chilkat v9.5.0.76 or greater. The TagIndex method was introduced in v9.5.0.76

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Xml;

...

procedure TForm1.Button1Click(Sender: TObject);
var
xml: HCkXml;
xT: HCkXml;
index: Integer;
x1: HCkXml;

begin
// First, let's create the following XML:

//   <FatturaElettronicaHeader>
//     <DatiTrasmissione>
//       <IdTrasmittente>
//         <IdPaese>IT</IdPaese>
//         <IdCodice>12345678</IdCodice>
//       </IdTrasmittente>
//     </DatiTrasmissione>
//   </FatturaElettronicaHeader>

xml := CkXml_Create();
CkXml_putTag(xml,'FatturaElettronicaHeader');
CkXml_UpdateChildContent(xml,'DatiTrasmissione|IdTrasmittente|IdPaese','IT');
CkXml_UpdateChildContent(xml,'DatiTrasmissione|IdTrasmittente|IdCodice','12345678');

// Now insert a new node to get this XML:

//   <FatturaElettronicaHeader>
//     <DatiTrasmissione>
//       <IdTrasmittente>
//         <IdPaese>IT</IdPaese>
//         <NewTag>Content</NewTag>
//         <IdCodice>12345678</IdCodice>
//       </IdTrasmittente>
//     </DatiTrasmissione>
//   </FatturaElettronicaHeader>

xT := CkXml_FindChild(xml,'DatiTrasmissione|IdTrasmittente');
index := CkXml_TagIndex(xT,'IdPaese');
if (index < 0) then
  begin
    Memo1.Lines.Add('nothing found at the given tag.');
    Exit;
  end;

x1 := CkXml_NewChildAfter(xT,index,'NewTag','Content');
CkXml_Dispose(x1);
CkXml_Dispose(xT);

// Show the resulting XML.
Memo1.Lines.Add(CkXml__getXml(xml));

CkXml_Dispose(xml);

end;