Unicode C++
Unicode C++
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat Unicode C++ Downloads
#include <CkXmlW.h>
#include <CkStringBuilderW.h>
void ChilkatSample(void)
{
bool success = false;
CkXmlW 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(L"<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;
CkXmlW *xmlSearch = xml.GetRoot();
CkXmlW *afterPtr = xml.GetRoot();
CkXmlW *pTemp = 0;
// Alway begin the search from the root.
while (xmlSearch->SearchForTag2(*afterPtr,L"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.
wprintf(L"%d: %s\n",i,xmlSearch->content());
pTemp = afterPtr;
afterPtr = xmlSearch;
pTemp->GetRoot2();
xmlSearch = pTemp;
}
delete xmlSearch;
delete afterPtr;
wprintf(L"----\n");
// A better way:
CkStringBuilderW sbState;
i = 0;
while (xml.NextInTraversal2(sbState) != false) {
if (xml.TagEquals(L"testchild1") == true) {
wprintf(L"%d: %s\n",i,xml.content());
i = i + 1;
}
}
xml.GetRoot2();
}