Swift
Swift
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 Swift Downloads
func chilkatTest() {
// Note: This example requires Chilkat v9.5.0.64 or later.
// Add some entries to a hashtable.
let hashTab = CkoHashtable()!
hashTab.addStr(key: "aaa", value: "111")
hashTab.addStr(key: "bbb", value: "222")
hashTab.addStr(key: "ccc", value: "333")
// Serialize to XML
let sb = CkoStringBuilder()!
hashTab.toXmlSb(sbXml: sb)
print("\(sb.getAsString()!)")
print("---")
// 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.
let hashTab2 = CkoHashtable()!
hashTab2.add(fromXmlSb: 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.
let sTable = CkoStringTable()!
hashTab2.getKeys(strTable: sTable)
var i: Int = 0
var numKeys: Int = sTable.count.intValue
while i < numKeys {
var key: String? = sTable.string(at: i)
print("\(key!): \(hashTab2.lookupStr(key: key)!)")
i = i + 1
}
}