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
(PowerShell) 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>
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" $xml = New-Object Chilkat.Xml $success = $xml.LoadXmlFile("qa_data/xml/fruit.xml") if ($success -ne $true) { $($xml.LastErrorText) exit } # Iterate over the direct children by using FirstChild / NextSibling $child = $xml.FirstChild() $bContinue = $xml.LastMethodSuccess while (($bContinue -eq $true)) { $($child.Tag + " : " + $child.Content) $nextSibling = $child.NextSibling() $bContinue = $child.LastMethodSuccess $child = $nextSibling } $("-----") # Do the same, but with FirstChild2 / NextSibling2 to avoid # creating so many XML object instances: $success = $xml.FirstChild2() while ($success -eq $true) { $($xml.Tag + " : " + $xml.Content) $success = $xml.NextSibling2() } # Revert back up to the parent: $success = $xml.GetParent2() $("-----") # Iterate in reverse order using LastChild / PreviousSibling $child = $xml.LastChild() $bContinue = $xml.LastMethodSuccess while (($bContinue -eq $true)) { $($child.Tag + " : " + $child.Content) $prevSibling = $child.PreviousSibling() $bContinue = $child.LastMethodSuccess $child = $prevSibling } $("-----") # Do the same, but with LastChild2 / PreviousSibling2 to avoid # creating so many XML object instances: $success = $xml.LastChild2() while ($success -eq $true) { $($xml.Tag + " : " + $xml.Content) $success = $xml.PreviousSibling2() } # Revert back up to the parent: $success = $xml.GetParent2() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.