Sample code for 30+ languages & platforms
Objective-C

Demonstrate XML SearchForTag2

Demonstrates how to use SearchForTag2.

Chilkat Objective-C Downloads

Objective-C
#import <CkoXml.h>
#import <CkoStringBuilder.h>

BOOL success = NO;

CkoXml *xml = [[CkoXml alloc] init];

//  Load the following XML:

//  	<Test>
//  	    <testchild1>
//  	        test
//  	    </testchild1>
//  	    <testchild1>
//  	        test1
//  	    </testchild1>
//  	    <testchild1>
//  	        test2
//  	    </testchild1>
//  	    <testchild1>
//  	        test3
//  	    </testchild1>
//  	    <testchild1>
//  	        test4
//  	    </testchild1>
//  	    <testchild1>
//  	        test5
//  	    </testchild1>
//  	    <testchild1>
//  	        test6
//  	    </testchild1>
//  	</Test>

success = [xml LoadXml: @"<Test><testchild1>test</testchild1><testchild1>test1</testchild1><testchild1>test2</testchild1><testchild1>test3</testchild1><testchild1>test4</testchild1><testchild1>test5</testchild1><testchild1>test6</testchild1></Test>"];

int i = 0;
CkoXml *xmlSearch = [xml GetRoot];
CkoXml *afterPtr = [xml GetRoot];
CkoXml *pTemp = 0;

//  Alway begin the search from the root.
while ([xmlSearch SearchForTag2: afterPtr tag: @"testchild1"]) {
    //  If successful, xmlSearch now points to the found element.
    i = i + 1;

    //  Set afterPtr = xmlSearch (so we find the next match after the one we just found)
    //  Rest xmlSearch to the root of the XML tree to be searched.
    NSLog(@"%d%@%@",i,@": ",xmlSearch.Content);
    pTemp = afterPtr;
    afterPtr = xmlSearch;
    [pTemp GetRoot2];
    xmlSearch = pTemp;
}

NSLog(@"%@",@"----");

//  A better way:
CkoStringBuilder *sbState = [[CkoStringBuilder alloc] init];
i = 0;
while ([xml NextInTraversal2: sbState] != NO) {
    if ([xml TagEquals: @"testchild1"] == YES) {
        NSLog(@"%d%@%@",i,@": ",xml.Content);
        i = i + 1;
    }

}

[xml GetRoot2];