AutoIt
AutoIt
XML Sort by Content
See more XML Examples
Demonstrates the SortByContent method.The input XML, available at http://www.chilkatsoft.com/data/fruitSort2.xml, is this:
<root>
<fruits>
<apples>
<apple>fuji</apple>
<apple>gala</apple>
<apple>granny smith</apple>
<apple>honeycrisp</apple>
<apple>mcintosh</apple>
</apples>
<fruit>banana</fruit>
<fruit>blackberry</fruit>
<fruit>blueberry</fruit>
<fruit>orange</fruit>
<fruit>pear</fruit>
</fruits>
</root>
Chilkat AutoIt Downloads
Local $bSuccess = False
$oXml = ObjCreate("Chilkat.Xml")
Local $oXSortRoot
; The sample input XML is available at http://www.chilkatsoft.com/data/fruitSort2.xml
$bSuccess = $oXml.LoadXmlFile("fruitSort2.xml")
If ($bSuccess <> True) Then
ConsoleWrite($oXml.LastErrorText & @CRLF)
Exit
EndIf
; Sort the direct children under the "fruits" node by tag:
$oXSortRoot = $oXml.FindChild("fruits")
; Sort in ascending order.
Local $bAscending = True
$oXSortRoot.SortByContent $bAscending
; Show the result:
ConsoleWrite($oXml.GetXml() & @CRLF)
; Note: The "apples" node contains child nodes, but its
; text content is 0-length (empty). Therefore, when sorting in
; ascending order, it will be positioned before the direct
; children containing non-empty content.
; <root>
; <fruits>
; <apples>
; <apple>granny smith</apple>
; <apple>gala</apple>
; <apple>fuji</apple>
; <apple>mcintosh</apple>
; <apple>honeycrisp</apple>
; </apples>
; <fruit>banana</fruit>
; <fruit>blackberry</fruit>
; <fruit>blueberry</fruit>
; <fruit>orange</fruit>
; <fruit>pear</fruit>
; </fruits>
; </root>
; Sort the direct children under the "apples" node:
$bSuccess = $oXSortRoot.FindChild2("apples")
$oXSortRoot.SortByContent $bAscending
ConsoleWrite($oXml.GetXml() & @CRLF)
; <root>
; <fruits>
; <apples>
; <apple>fuji</apple>
; <apple>gala</apple>
; <apple>granny smith</apple>
; <apple>honeycrisp</apple>
; <apple>mcintosh</apple>
; </apples>
; <fruit>banana</fruit>
; <fruit>blackberry</fruit>
; <fruit>blueberry</fruit>
; <fruit>orange</fruit>
; <fruit>pear</fruit>
; </fruits>
; </root>