直接將 XML 解組到 Map
將 XML 直接解組到 Map可以透過消除中間結構轉換來最佳化資料處理
實作:
要實現此目的,請建立一個實作 xml.Unmarshaller 介面的類型,允許將 XML資料直接對應到map[string]string.
type classAccessesMap struct { m map[string]string } // UnmarshalXML implements the xml.Unmarshaller interface func (c *classAccessesMap) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { c.m = make(map[string]string) var key, val string for { t, _ := d.Token() switch tt := t.(type) { // TODO: parse the inner structure case xml.StartElement: fmt.Println(">", tt) case xml.EndElement: fmt.Println("<", tt) if tt.Name == start.Name { return nil } if tt.Name.Local == "enabled" { c.m[key] = val } } } }
用法:
將自訂類型套用於unmarshal 操作,直接將XML 資料對應到映射中:
// Unmarshalling into a map var cm classAccessesMap err := xml.Unmarshal([]byte(`<classAccesses>\n <apexClass>AccountRelationUtility</apexClass>\n <enabled>true</enabled>\n</classAccesses>`), &cm) if err != nil { fmt.Println(err) }
這種方法透過避免雙重轉換的開銷來簡化資料處理,從而提高大數據的效能套裝。
以上是如何直接將XML解組到Go Map中以優化資料處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!