Maison > développement back-end > Golang > Comment convertir une Go Map en données XML ?

Comment convertir une Go Map en données XML ?

Linda Hamilton
Libérer: 2024-11-01 18:12:02
original
430 Les gens l'ont consulté

How to Convert a Go Map to XML Data?

Marshall Maps to XML in Go

Lors de la tentative de conversion d'une carte en données XML, une erreur peut survenir :

xml: unsupported type: map[string]int
Copier après la connexion

Bien qu'il soit simple de rassembler des cartes vers JSON, l'utilisation d'une structure n'est peut-être pas la seule option.

Pour résoudre ce problème, l'interface xml.Marshaler peut être utilisée :

<code class="go">// Marshal maps into XML.
func (s StringMap) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
    tokens := []xml.Token{start}

    for key, value := range s {
        t := xml.StartElement{Name: xml.Name{"", key}}
        tokens = append(tokens, t, xml.CharData(value), xml.EndElement{t.Name})
    }

    tokens = append(tokens, xml.EndElement{start.Name})

    for _, t := range tokens {
        err := e.EncodeToken(t)
        if err != nil {
            return err
        }
    }

    // flush to ensure tokens are written
    return e.Flush()
}</code>
Copier après la connexion

En implémentant la méthode MarshalXML pour un type StringMap personnalisé, la carte peut être marshallée au format XML.

Pour utiliser le XML marshallé :

<code class="go">output, err := xml.MarshalIndent(data, "", "  ")</code>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal