Heim > Backend-Entwicklung > Golang > Wie kann ich XML für eine optimierte Datenverarbeitung direkt in eine Go-Map einbinden?

Wie kann ich XML für eine optimierte Datenverarbeitung direkt in eine Go-Map einbinden?

Patricia Arquette
Freigeben: 2024-12-05 16:21:11
Original
1070 Leute haben es durchsucht

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

XML direkt in eine Karte entmarshallen

Das direkte Entmarshallen von XML in eine Karte kann die Datenverarbeitung optimieren, indem der Zwischenschritt der Strukturkonvertierung entfällt.

Implementierung:

Um dies zu erreichen, erstellen Sie ein Typ, der die xml.Unmarshaller-Schnittstelle implementiert und die direkte Zuordnung von XML-Daten in einen Map[string]string ermöglicht.

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
            }
        }
    }
}
Nach dem Login kopieren

Verwendung:

Wenden Sie den Benutzerdefiniert an Geben Sie den Unmarshal-Vorgang ein, um die XML-Daten direkt in eine Karte abzubilden:

// 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)
}
Nach dem Login kopieren

Dieser Ansatz rationalisiert die Datenverarbeitung durch Vermeidung Der Aufwand doppelter Konvertierungen, was zu einer verbesserten Leistung bei großen Datenmengen führt.

Das obige ist der detaillierte Inhalt vonWie kann ich XML für eine optimierte Datenverarbeitung direkt in eine Go-Map einbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage