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