Maison >développement back-end >Golang >Comment puis-je directement intégrer du XML dans une Go Map pour un traitement optimisé des données ?
Désassembler directement du XML dans une carte
Désassembler du XML directement dans une carte peut optimiser le traitement des données en éliminant l'étape de conversion de structure intermédiaire.
Mise en œuvre :
Pour y parvenir, créez un type qui implémente l'interface xml.Unmarshaller, permettant le mappage direct des données XML dans une chaîne map[string].
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 } } } }
Utilisation :
Appliquer la personnalisation tapez à l'opération unmarshal pour mapper directement les données XML dans une carte :
// 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) }
Cette approche rationalise le traitement des données en évitant la surcharge de doubles conversions, ce qui entraîne des performances améliorées pour les grands ensembles de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!