Objective-C
Objective-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 Objective-C Downloads
#import <CkoXml.h>
// Build the 1st XML document:
// <x1>
// <a1>1</a1>
// <a2>2</a2>
// <a3>3</a3>
// </x1>
CkoXml *xml = [[CkoXml alloc] init];
xml.Tag = @"x1";
[xml UpdateChildContent: @"a1" value: @"1"];
[xml UpdateChildContent: @"a2" value: @"2"];
[xml UpdateChildContent: @"a3" value: @"3"];
// Build a 2nd XML document:
// <x2>
// <b1>11</b1>
// <b2>22</b2>
// <b3>33</b3>
// </x2>
CkoXml *xml2 = [[CkoXml alloc] init];
xml2.Tag = @"x2";
[xml2 UpdateChildContent: @"b1" value: @"11"];
[xml2 UpdateChildContent: @"b2" value: @"22"];
[xml2 UpdateChildContent: @"b3" value: @"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"] intValue];
if (index < 0) {
NSLog(@"%@",@"a1 not found.");
return;
}
[xml InsertChildTreeAfter: [NSNumber numberWithInt: index] tree: xml2];
NSLog(@"%@",[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" value: @"33333333"];
NSLog(@"%@",[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>