Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Demonstrate XML SearchForTag2Demonstrates how to use SearchForTag2.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; 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.i = CkXml::ckLoadXml(xml,"<Test><testchild1>test</testchild1><testchild1>test1</testchild1><testchild1>test2</testchild1><testchild1>test3</testchild1><testchild1>test4</testchild1><testchild1>test5</testchild1><testchild1>test6</testchild1></Test>") i.i = 0 xmlSearch.i = CkXml::ckGetRoot(xml) afterPtr.i = CkXml::ckGetRoot(xml) pTemp.i ; Alway begin the search from the root. While CkXml::ckSearchForTag2(xmlSearch,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. Debug Str(i) + ": " + CkXml::ckContent(xmlSearch) pTemp = afterPtr afterPtr = xmlSearch CkXml::ckGetRoot2(pTemp) xmlSearch = pTemp Wend CkXml::ckDispose(xmlSearch) CkXml::ckDispose(afterPtr) Debug "----" ; A better way: sbState.i = CkStringBuilder::ckCreate() If sbState.i = 0 Debug "Failed to create object." ProcedureReturn EndIf i = 0 While CkXml::ckNextInTraversal2(xml,sbState) <> 0 If CkXml::ckTagEquals(xml,"testchild1") = 1 Debug Str(i) + ": " + CkXml::ckContent(xml) i = i + 1 EndIf Wend CkXml::ckGetRoot2(xml) CkXml::ckDispose(xml) CkStringBuilder::ckDispose(sbState) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.