Perl
Perl
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat Perl Downloads
use chilkat();
$success = 0;
$xml = chilkat::CkXml->new();
# 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 is a Xml
$xmlSearch = $xml->GetRoot();
# afterPtr is a Xml
$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.
print $i . ": " . $xmlSearch->content() . "\r\n";
# pTemp is a Xml
$pTemp = $afterPtr;
# afterPtr is a Xml
$afterPtr = $xmlSearch;
$pTemp->GetRoot2();
# xmlSearch is a Xml
$xmlSearch = $pTemp;
}
print "----" . "\r\n";
# A better way:
$sbState = chilkat::CkStringBuilder->new();
$i = 0;
while ($xml->NextInTraversal2($sbState) != 0) {
if ($xml->TagEquals("testchild1") == 1) {
print $i . ": " . $xml->content() . "\r\n";
$i = $i + 1;
}
}
$xml->GetRoot2();