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
415 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!

source:php.cn
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