Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyahmarshal XML Secara Terus ke dalam Peta Go untuk Pemprosesan Data Dioptimumkan?

Bagaimanakah Saya Boleh Menyahmarshal XML Secara Terus ke dalam Peta Go untuk Pemprosesan Data Dioptimumkan?

Patricia Arquette
Lepaskan: 2024-12-05 16:21:11
asal
1048 orang telah melayarinya

How Can I Directly Unmarshal XML into a Go Map for Optimized Data Processing?

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
            }
        }
    }
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan