AutoIt
AutoIt
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat AutoIt Downloads
Local $bSuccess = False
$oXml = ObjCreate("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>
$bSuccess = $oXml.LoadXml("<Test><testchild1>test</testchild1><testchild1>test1</testchild1><testchild1>test2</testchild1><testchild1>test3</testchild1><testchild1>test4</testchild1><testchild1>test5</testchild1><testchild1>test6</testchild1></Test>")
Local $i = 0
Local $oXmlSearch = $oXml.GetRoot()
Local $oAfterPtr = $oXml.GetRoot()
Local $oPTemp
; Alway begin the search from the root.
While $oXmlSearch.SearchForTag2($oAfterPtr,"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.
ConsoleWrite($i & ": " & $oXmlSearch.Content & @CRLF)
$oPTemp = $oAfterPtr
$oAfterPtr = $oXmlSearch
$oPTemp.GetRoot2
$oXmlSearch = $oPTemp
Wend
ConsoleWrite("----" & @CRLF)
; A better way:
$oSbState = ObjCreate("Chilkat.StringBuilder")
$i = 0
While $oXml.NextInTraversal2($oSbState) <> False
If ($oXml.TagEquals("testchild1") = True) Then
ConsoleWrite($i & ": " & $oXml.Content & @CRLF)
$i = $i + 1
EndIf
Wend
$oXml.GetRoot2