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
(DataFlex) Traverse Direct Children via FirstChild / NextSibling, or LastChild / PreviousSiblingDemonstrates some ways to iterate over direct child nodes using the FirstChild / NextSibling and LastChild / PreviousSibling methods. The input XML, available at http://www.chilkatsoft.com/data/fruit.xml, is this: <root> <fruit color="red">apple</fruit> <fruit color="green">pear</fruit> <veg color="orange">carrot</veg> <meat animal="cow">beef</meat> <xyz> <fruit color="blue">blueberry</fruit> <veg color="green">broccoli</veg> </xyz> <fruit color="purple">grape</fruit> <cheese color="yellow">cheddar</cheese> </root>
Use ChilkatAx-win32.pkg Procedure Test Handle hoXml Variant vChild Handle hoChild Variant vNextSibling Handle hoNextSibling Variant vPrevSibling Handle hoPrevSibling Boolean iSuccess Boolean iBContinue String sTemp1 String sTemp2 Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Get ComLoadXmlFile Of hoXml "qa_data/xml/fruit.xml" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoXml To sTemp1 Showln sTemp1 Procedure_Return End // Iterate over the direct children by using FirstChild / NextSibling Get ComFirstChild Of hoXml To vChild If (IsComObject(vChild)) Begin Get Create (RefClass(cComChilkatXml)) To hoChild Set pvComObject Of hoChild To vChild End Get ComLastMethodSuccess Of hoXml To iBContinue While (iBContinue = True) Get ComTag Of hoChild To sTemp1 Get ComContent Of hoChild To sTemp2 Showln sTemp1 " : " sTemp2 Get ComNextSibling Of hoChild To vNextSibling If (IsComObject(vNextSibling)) Begin Get Create (RefClass(cComChilkatXml)) To hoNextSibling Set pvComObject Of hoNextSibling To vNextSibling End Get ComLastMethodSuccess Of hoChild To iBContinue Send Destroy of hoChild Move hoNextSibling To hoChild Loop Showln "-----" // Do the same, but with FirstChild2 / NextSibling2 to avoid // creating so many XML object instances: Get ComFirstChild2 Of hoXml To iSuccess While (iSuccess = True) Get ComTag Of hoXml To sTemp1 Get ComContent Of hoXml To sTemp2 Showln sTemp1 " : " sTemp2 Get ComNextSibling2 Of hoXml To iSuccess Loop // Revert back up to the parent: Get ComGetParent2 Of hoXml To iSuccess Showln "-----" // Iterate in reverse order using LastChild / PreviousSibling Get ComLastChild Of hoXml To vChild If (IsComObject(vChild)) Begin Get Create (RefClass(cComChilkatXml)) To hoChild Set pvComObject Of hoChild To vChild End Get ComLastMethodSuccess Of hoXml To iBContinue While (iBContinue = True) Get ComTag Of hoChild To sTemp1 Get ComContent Of hoChild To sTemp2 Showln sTemp1 " : " sTemp2 Get ComPreviousSibling Of hoChild To vPrevSibling If (IsComObject(vPrevSibling)) Begin Get Create (RefClass(cComChilkatXml)) To hoPrevSibling Set pvComObject Of hoPrevSibling To vPrevSibling End Get ComLastMethodSuccess Of hoChild To iBContinue Send Destroy of hoChild Move hoPrevSibling To hoChild Loop Showln "-----" // Do the same, but with LastChild2 / PreviousSibling2 to avoid // creating so many XML object instances: Get ComLastChild2 Of hoXml To iSuccess While (iSuccess = True) Get ComTag Of hoXml To sTemp1 Get ComContent Of hoXml To sTemp2 Showln sTemp1 " : " sTemp2 Get ComPreviousSibling2 Of hoXml To iSuccess Loop // Revert back up to the parent: Get ComGetParent2 Of hoXml To iSuccess End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.