Sample code for 30+ languages & platforms
Go

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 Go Downloads

Go
    // Note: This example requires Chilkat v9.5.0.64 or later.

    // Add some entries to a hashtable.
    hashTab := chilkat.NewHashtable()

    hashTab.AddStr("aaa","111")
    hashTab.AddStr("bbb","222")
    hashTab.AddStr("ccc","333")

    // Serialize to XML
    sb := chilkat.NewStringBuilder()
    hashTab.ToXmlSb(sb)
    fmt.Println(*sb.GetAsString())
    fmt.Println("---")

    // 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 := chilkat.NewHashtable()
    hashTab2.AddFromXmlSb(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 := chilkat.NewStringTable()
    hashTab2.GetKeys(sTable)

    i := 0
    numKeys := sTable.Count()
    for i < numKeys {
        key := sTable.StringAt(i)
        fmt.Println(*key, ": ", *hashTab2.LookupStr(*key))
        i = i + 1
    }


    hashTab.DisposeHashtable()
    sb.DisposeStringBuilder()
    hashTab2.DisposeHashtable()
    sTable.DisposeStringTable()