(JavaScript) Insert XML into existing XML by calling InsertChildTreeAfter
Demonstrates how to insert an XML tree or subtree into another XML document using the InsertChildTreeAfter method.
// Build the 1st XML document:
// <x1>
// <a1>1</a1>
// <a2>2</a2>
// <a3>3</a3>
// </x1>
var xml = new CkXml();
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>
var xml2 = new CkXml();
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"
var index = xml.TagIndex("a1");
if (index < 0) {
console.log("a1 not found.");
return;
}
xml.InsertChildTreeAfter(index,xml2);
console.log(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");
console.log(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>
|