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) Iterate over Direct Child Nodes by IndexDemonstrates some ways to iterate over direct child nodes by index. The input XML, available at http://www.chilkatsoft.com/data/get_child.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 Boolean iSuccess Integer i String sTemp1 String sTemp2 Integer iTemp1 Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End // The sample input XML is available at http://www.chilkatsoft.com/data/get_child.xml Get ComLoadXmlFile Of hoXml "get_child.xml" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoXml To sTemp1 Showln sTemp1 Procedure_Return End // The NumChildren property contains the number of direct // child nodes. Note: The child nodes under "xyz" are NOT // direct children of "root". Therefore, the "root" node has // 7 direct children Get ComNumChildren Of hoXml To iTemp1 Showln "NumChildren = " iTemp1 // Iterate over the direct children by index. The first child // is at index 0. Get ComNumChildren Of hoXml To iTemp1 For i From 0 To (iTemp1 - 1) // access the tag and content directly by index: Get ComGetChildTagByIndex Of hoXml i To sTemp1 Get ComGetChildContentByIndex Of hoXml i To sTemp2 Showln i ": " sTemp1 " : " sTemp2 Loop Showln "-----" // Do the same as the above loop, but get the child node // and access the Tag and Content properties: Get ComNumChildren Of hoXml To iTemp1 For i From 0 To (iTemp1 - 1) Get ComGetChild Of hoXml i To vChild If (IsComObject(vChild)) Begin Get Create (RefClass(cComChilkatXml)) To hoChild Set pvComObject Of hoChild To vChild End Get ComTag Of hoChild To sTemp1 Get ComContent Of hoChild To sTemp2 Showln i ": " sTemp1 " : " sTemp2 Send Destroy of hoChild Loop Showln "-----" // Do the same as the above loop, but instead of creating // a new object instance for each child, call GetChild2 to // update the object's reference instead. Get ComNumChildren Of hoXml To iTemp1 For i From 0 To (iTemp1 - 1) // Navigate to the Nth child. Get ComGetChild2 Of hoXml i To iSuccess Get ComTag Of hoXml To sTemp1 Get ComContent Of hoXml To sTemp2 Showln i ": " sTemp1 " : " sTemp2 // Navigate back up to the parent: Get ComGetParent2 Of hoXml To iSuccess Loop Showln "-----" // Notice that the Content of the "xyz" node is empty. This is correct. // The "xyz" node has no Content, but 2 direct children End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.