Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyahmarshal XML Secara Terus ke dalam Peta Go untuk Pemprosesan Data Dioptimumkan?
Menyahmarshal XML secara langsung ke dalam Peta
Menyahmarshal XML terus ke dalam peta boleh mengoptimumkan pemprosesan data dengan menghapuskan penukaran struktur perantaraan langkah.
Pelaksanaan:
Untuk mencapai ini, cipta jenis yang melaksanakan antara muka xml.Unmarshaller, membenarkan pemetaan langsung data XML ke dalam rentetan[rentetan] peta .
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 } } } }
Penggunaan:
Gunakan jenis tersuai kepada operasi unmarshal untuk secara terus memetakan data XML ke dalam peta:
// 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) }
Pendekatan ini menyelaraskan pemprosesan data dengan mengelakkan overhed penukaran dua kali, menghasilkan prestasi yang lebih baik untuk set data yang besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahmarshal XML Secara Terus ke dalam Peta Go untuk Pemprosesan Data Dioptimumkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!