Sample code for 30+ languages & platforms
AutoIt

Demonstrate XML SearchForTag2

Demonstrates how to use SearchForTag2.

Chilkat AutoIt Downloads

AutoIt
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