AutoIt
AutoIt
XML SearchForTag Method
See more XML Examples
Demonstrates the SearchForTag and SearchForTag2 methods.The input XML, available at http://www.chilkatsoft.com/data/fruitSearch.xml, is this:
<root>
<searchRoot>
<fruit color="red">apple</fruit>
<fruit color="green">pear</fruit>
<veg color="orange">carrot</veg>
<meat animal="cow">beef</meat>
<xyz>
<fruit color="blue">blueberry</fruit>
<veg color="green">broccoli</veg>
</xyz>
<fruit color="purple">grape</fruit>
<cheese color="yellow">cheddar</cheese>
</searchRoot>
<fruit color="red">strawberry</fruit>
<fruit color="orange">peach</fruit>
</root>
Chilkat AutoIt Downloads
Local $bSuccess = False
$oXml = ObjCreate("Chilkat.Xml")
Local $oXSearchRoot
Local $oXBeginAfter
Local $oXFound
; The sample input XML is available at http://www.chilkatsoft.com/data/fruitSearch.xml
$bSuccess = $oXml.LoadXmlFile("qa_data/xml/fruitSearch.xml")
If ($bSuccess <> True) Then
ConsoleWrite($oXml.LastErrorText & @CRLF)
Exit
EndIf
; Search the sub-tree rooted at "searchRoot"
$oXSearchRoot = $oXml.FindChild("searchRoot")
; Search for all nodes having the tag "fruit"
$oXBeginAfter = $oXSearchRoot.GetSelf()
$oXFound = $oXSearchRoot.SearchForTag($oXSearchRoot,"fruit")
While ($oXSearchRoot.LastMethodSuccess = True)
ConsoleWrite($oXFound.Content & @CRLF)
$oXBeginAfter = $oXFound
$oXFound = $oXSearchRoot.SearchForTag($oXBeginAfter,"fruit")
Wend
ConsoleWrite("--------------------------" & @CRLF)
; ---------------------------------------------------------------------------------
; Now do the same, but instead use SearchForTag2
; which updates the internal reference of the caller instead
; of returning the found node.
Local $oXSearch
$oXBeginAfter = $oXSearchRoot.GetSelf()
$oXSearch = $oXSearchRoot.GetSelf()
$bSuccess = $oXSearch.SearchForTag2($oXBeginAfter,"fruit")
While $bSuccess = True
ConsoleWrite($oXSearch.Content & @CRLF)
; Copy the internal references so that the next search
; begins after the found node.
$oXBeginAfter.CopyRef $oXSearch
$oXSearch.CopyRef $oXSearchRoot
$bSuccess = $oXSearch.SearchForTag2($oXBeginAfter,"fruit")
Wend