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
(PureBasic) Serialize / Deserialize Hashtable to/from XMLDemonstrates how to seralize / deserialize a Hashtable to/from XML. Note: This example requires Chilkat v9.5.0.64 or later.
IncludeFile "CkStringTable.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkHashtable.pb" Procedure ChilkatExample() ; Note: This example requires Chilkat v9.5.0.64 or later. ; Add some entries to a hashtable. hashTab.i = CkHashtable::ckCreate() If hashTab.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHashtable::ckAddStr(hashTab,"aaa","111") CkHashtable::ckAddStr(hashTab,"bbb","222") CkHashtable::ckAddStr(hashTab,"ccc","333") ; Serialize to XML sb.i = CkStringBuilder::ckCreate() If sb.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHashtable::ckToXmlSb(hashTab,sb) Debug CkStringBuilder::ckGetAsString(sb) Debug "---" ; 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. hashTab2.i = CkHashtable::ckCreate() If hashTab2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHashtable::ckAddFromXmlSb(hashTab2,sb) ; 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. sTable.i = CkStringTable::ckCreate() If sTable.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHashtable::ckGetKeys(hashTab2,sTable) i.i = 0 numKeys.i = CkStringTable::ckCount(sTable) While i < numKeys key.s = CkStringTable::ckStringAt(sTable,i) Debug key + ": " + CkHashtable::ckLookupStr(hashTab2,key) i = i + 1 Wend CkHashtable::ckDispose(hashTab) CkStringBuilder::ckDispose(sb) CkHashtable::ckDispose(hashTab2) CkStringTable::ckDispose(sTable) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.