DataFlex
DataFlex
Serialize / Deserialize Hashtable to/from XML
Demonstrates how to seralize / deserialize a Hashtable to/from XML.Note: This example requires Chilkat v9.5.0.64 or later.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHashTab
Boolean iSuccess
Variant vSb
Handle hoSb
2 Handle hoHashTab2
Variant vSTable
Handle hoSTable
Integer i
Integer iNumKeys
String sKey
String sTemp1
// Note: This example requires Chilkat v9.5.0.64 or later.
// Add some entries to a hashtable.
Get Create (RefClass(cComChilkatHashtable)) To hoHashTab
If (Not(IsComObjectCreated(hoHashTab))) Begin
Send CreateComObject of hoHashTab
End
Get ComAddStr Of hoHashTab "aaa" "111" To iSuccess
Get ComAddStr Of hoHashTab "bbb" "222" To iSuccess
Get ComAddStr Of hoHashTab "ccc" "333" To iSuccess
// Serialize to XML
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get pvComObject of hoSb to vSb
Get ComToXmlSb Of hoHashTab vSb To iSuccess
Get ComGetAsString Of hoSb To sTemp1
Showln sTemp1
Showln "---"
// The output is as follows. Each hash table entry
// is contained in an "e" node. The entry's key
// is in the "k" node, and the value in the "v" node.
// <?xml version="1.0" encoding="utf8-8"?>
// <hashtable>
// <e><k>aaa</k><v>111</v></e>
// <e><k>bbb</k><v>222</v></e>
// <e><k>ccc</k><v>333</v></e>
// </hashtable>
//
// Now load (deserialize) into a new hash table.
Get Create (RefClass(cComChilkatHashtable)) To hoHashTab2
If (Not(IsComObjectCreated(hoHashTab2))) Begin
Send CreateComObject of hoHashTab2
End
Get pvComObject of hoSb to vSb
Get ComAddFromXmlSb Of hoHashTab2 vSb To iSuccess
// Get the hash table keys, and lookup each (to show
// that the hash table was correctly deserialized).
// The GetKeys method can return the keys in any order.
Get Create (RefClass(cComChilkatStringTable)) To hoSTable
If (Not(IsComObjectCreated(hoSTable))) Begin
Send CreateComObject of hoSTable
End
Get pvComObject of hoSTable to vSTable
Get ComGetKeys Of hoHashTab2 vSTable To iSuccess
Move 0 To i
Get ComCount Of hoSTable To iNumKeys
While (i < iNumKeys)
Get ComStringAt Of hoSTable i To sKey
Get ComLookupStr Of hoHashTab2 sKey To sTemp1
Showln sKey ": " sTemp1
Move (i + 1) To i
Loop
End_Procedure