Sample code for 30+ languages & platforms
C#

Demonstrate XML SearchForTag2

Demonstrates how to use SearchForTag2.

Chilkat C# Downloads

C#
bool success = false;

Chilkat.Xml xml = new Chilkat.Xml();

//  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;
Chilkat.Xml xmlSearch = xml.GetRoot();
Chilkat.Xml afterPtr = xml.GetRoot();
Chilkat.Xml pTemp = null;

//  Alway begin the search from the root.
while (xmlSearch.SearchForTag2(afterPtr,"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.
    Debug.WriteLine(Convert.ToString(i) + ": " + xmlSearch.Content);
    pTemp = afterPtr;
    afterPtr = xmlSearch;
    pTemp.GetRoot2();
    xmlSearch = pTemp;
}

Debug.WriteLine("----");

//  A better way:
Chilkat.StringBuilder sbState = new Chilkat.StringBuilder();
i = 0;
while (xml.NextInTraversal2(sbState) != false) {
    if (xml.TagEquals("testchild1") == true) {
        Debug.WriteLine(Convert.ToString(i) + ": " + xml.Content);
        i = i + 1;
    }

}

xml.GetRoot2();