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
Patricia Arquetteasal
2024-12-05 16:21:111038semak imbas

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
            }
        }
    }
}

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!

Kenyataan:
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