PowerBuilder
PowerBuilder
Demonstrate XML SearchForTag2
Demonstrates how to use SearchForTag2.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Xml
integer i
oleobject loo_XmlSearch
oleobject loo_AfterPtr
oleobject loo_PTemp
oleobject loo_SbState
li_Success = 0
loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")
if li_rc < 0 then
destroy loo_Xml
MessageBox("Error","Connecting to COM object failed")
return
end if
// 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>
li_Success = loo_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
loo_XmlSearch = loo_Xml.GetRoot()
loo_AfterPtr = loo_Xml.GetRoot()
// Alway begin the search from the root.
do while loo_XmlSearch.SearchForTag2(loo_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.
Write-Debug string(i) + ": " + loo_XmlSearch.Content
loo_PTemp = loo_AfterPtr
loo_AfterPtr = loo_XmlSearch
loo_PTemp.GetRoot2()
loo_XmlSearch = loo_PTemp
loop
destroy loo_XmlSearch
destroy loo_AfterPtr
Write-Debug "----"
// A better way:
loo_SbState = create oleobject
li_rc = loo_SbState.ConnectToNewObject("Chilkat.StringBuilder")
i = 0
do while loo_Xml.NextInTraversal2(loo_SbState) <> 0
if loo_Xml.TagEquals("testchild1") = 1 then
Write-Debug string(i) + ": " + loo_Xml.Content
i = i + 1
end if
loop
loo_Xml.GetRoot2()
destroy loo_Xml
destroy loo_SbState