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>