Lianja
Lianja
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat Lianja Downloads
llSuccess = .F.
loXml = createobject("CkXml")
// 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>
llSuccess = loXml.LoadXml("<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
loXmlSearch = loXml.GetRoot()
loAfterPtr = loXml.GetRoot()
// Alway begin the search from the root.
do while loXmlSearch.SearchForTag2(loAfterPtr,"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.
? str(i) + ": " + loXmlSearch.Content
loPTemp = loAfterPtr
loAfterPtr = loXmlSearch
loPTemp.GetRoot2()
loXmlSearch = loPTemp
enddo
release loXmlSearch
release loAfterPtr
? "----"
// A better way:
loSbState = createobject("CkStringBuilder")
i = 0
do while loXml.NextInTraversal2(loSbState) <> .F.
if (loXml.TagEquals("testchild1") = .T.) then
? str(i) + ": " + loXml.Content
i = i + 1
endif
enddo
loXml.GetRoot2()
release loXml
release loSbState