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