PureBasic
PureBasic
XML Sort Records by Content
See more XML Examples
Demonstrates the SortRecordsByContent method.The input XML, available at http://www.chilkatsoft.com/data/fruitRecordsSort.xml, is this:
<root>
<fruits>
<fruit>
<name>apple</name>
<color>red</color>
</fruit>
<fruit>
<name>banana</name>
<color>yellow</color>
</fruit>
<fruit>
<name>blackberry</name>
<color>purple</color>
</fruit>
<fruit>
<name>blueberry</name>
<color>blue</color>
</fruit>
<fruit>
<name>orange</name>
<color>orange</color>
</fruit>
<fruit>
<name>pear</name>
<color>green</color>
</fruit>
</fruits>
</root>
Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
xSortRoot.i
; The sample input XML is available at http://www.chilkatsoft.com/data/fruitRecordsSort.xml
success = CkXml::ckLoadXmlFile(xml,"fruitRecordsSort.xml")
If success <> 1
Debug CkXml::ckLastErrorText(xml)
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
; The "fruit" records are direct children of the "fruits" node.
; Therefore, to sort the fruit records, the SortRecordsByContent
; method must be called from the "fruits" node.
xSortRoot = CkXml::ckFindChild(xml,"fruits")
; Sort by the "name" field in ascending order.
bAscending.i = 1
CkXml::ckSortRecordsByContent(xSortRoot,"name",bAscending)
; Show the result:
Debug CkXml::ckGetXml(xml)
; <root>
; <fruits>
; <fruit>
; <name>apple</name>
; <color>red</color>
; </fruit>
; <fruit>
; <name>banana</name>
; <color>yellow</color>
; </fruit>
; <fruit>
; <name>blackberry</name>
; <color>purple</color>
; </fruit>
; <fruit>
; <name>blueberry</name>
; <color>blue</color>
; </fruit>
; <fruit>
; <name>orange</name>
; <color>orange</color>
; </fruit>
; <fruit>
; <name>pear</name>
; <color>green</color>
; </fruit>
; </fruits>
; </root>
CkXml::ckDispose(xSortRoot)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure