Unicode C
Unicode C
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat Unicode C Downloads
#include <C_CkXmlW.h>
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
BOOL success;
HCkXmlW xml;
int i;
HCkXmlW xmlSearch;
HCkXmlW afterPtr;
HCkXmlW pTemp;
HCkStringBuilderW sbState;
success = FALSE;
xml = CkXmlW_Create();
// 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 = CkXmlW_LoadXml(xml,L"<Test><testchild1>test</testchild1><testchild1>test1</testchild1><testchild1>test2</testchild1><testchild1>test3</testchild1><testchild1>test4</testchild1><testchild1>test5</testchild1><testchild1>test6</testchild1></Test>");
i = 0;
xmlSearch = CkXmlW_GetRoot(xml);
afterPtr = CkXmlW_GetRoot(xml);
// Alway begin the search from the root.
while (CkXmlW_SearchForTag2(xmlSearch,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,CkXmlW_content(xmlSearch));
pTemp = afterPtr;
afterPtr = xmlSearch;
CkXmlW_GetRoot2(pTemp);
xmlSearch = pTemp;
}
CkXmlW_Dispose(xmlSearch);
CkXmlW_Dispose(afterPtr);
wprintf(L"----\n");
// A better way:
sbState = CkStringBuilderW_Create();
i = 0;
while (CkXmlW_NextInTraversal2(xml,sbState) != FALSE) {
if (CkXmlW_TagEquals(xml,L"testchild1") == TRUE) {
wprintf(L"%d: %s\n",i,CkXmlW_content(xml));
i = i + 1;
}
}
CkXmlW_GetRoot2(xml);
CkXmlW_Dispose(xml);
CkStringBuilderW_Dispose(sbState);
}