PowerShell
PowerShell
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
$xml = New-Object 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>
$success = $xml.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
$xmlSearch = $xml.GetRoot()
$afterPtr = $xml.GetRoot()
# Alway begin the search from the root.
while ($xmlSearch.SearchForTag2($afterPtr,"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.
$([string]$i + ": " + $xmlSearch.Content)
$pTemp = $afterPtr
$afterPtr = $xmlSearch
$pTemp.GetRoot2()
$xmlSearch = $pTemp
}
$("----")
# A better way:
$sbState = New-Object Chilkat.StringBuilder
$i = 0
while ($xml.NextInTraversal2($sbState) -ne $false) {
if ($xml.TagEquals("testchild1") -eq $true) {
$([string]$i + ": " + $xml.Content)
$i = $i + 1
}
}
$xml.GetRoot2()