Sample code for 30+ languages & platforms
C#

Insert XML into existing XML by calling InsertChildTreeAfter

See more XML Examples

Demonstrates how to insert an XML tree or subtree into another XML document using the InsertChildTreeAfter method.

Chilkat C# Downloads

C#
//  Build the 1st XML document:
//  <x1>
//      <a1>1</a1>
//      <a2>2</a2>
//      <a3>3</a3>
//  </x1>

Chilkat.Xml xml = new Chilkat.Xml();
xml.Tag = "x1";
xml.UpdateChildContent("a1","1");
xml.UpdateChildContent("a2","2");
xml.UpdateChildContent("a3","3");

//  Build a 2nd XML document:

//  <x2>
//    <b1>11</b1>
//    <b2>22</b2>
//    <b3>33</b3>
//  </x2>

Chilkat.Xml xml2 = new Chilkat.Xml();
xml2.Tag = "x2";
xml2.UpdateChildContent("b1","11");
xml2.UpdateChildContent("b2","22");
xml2.UpdateChildContent("b3","33");

//  We want to insert xml2 into xml to get this:

//  <x1>
//      <a1>1</a1>
//      <x2>
//          <b1>11</b1>
//          <b2>22</b2>
//          <b3>33</b3>
//      </x2>
//      <a2>2</a2>
//      <a3>3</a3>
//  </x1>

//  Insert xml2 after "a1"

int index = xml.TagIndex("a1");
if (index < 0) {
    Debug.WriteLine("a1 not found.");
    return;
}

xml.InsertChildTreeAfter(index,xml2);

Debug.WriteLine(xml.GetXml());

//  The result is:

//  <x1>
//      <a1>1</a1>
//      <x2>
//          <b1>11</b1>
//          <b2>22</b2>
//          <b3>33</b3>
//      </x2>
//      <a2>2</a2>
//      <a3>3</a3>
//  </x1>

//  Note: xml2 now points to the subtree within xml.
//  For example, update "b3" and then see how it's updated within the merged document:
xml2.UpdateChildContent("b3","33333333");

Debug.WriteLine(xml.GetXml());

//  The result:

//  <x1>
//      <a1>1</a1>
//      <x2>
//          <b1>11</b1>
//          <b2>22</b2>
//          <b3>33333333</b3>
//      </x2>
//      <a2>2</a2>
//      <a3>3</a3>
//  </x1>