Heim > Backend-Entwicklung > Golang > Wie konvertiert man eine Go-Map in XML-Daten?

Wie konvertiert man eine Go-Map in XML-Daten?

Linda Hamilton
Freigeben: 2024-11-01 18:12:02
Original
416 Leute haben es durchsucht

How to Convert a Go Map to XML Data?

Marshall Maps zu XML in Go

Beim Versuch, eine Karte in XML-Daten zu konvertieren, kann ein Fehler auftreten:

xml: unsupported type: map[string]int
Nach dem Login kopieren

Obwohl es unkompliziert ist, Karten in JSON zu marsallieren, ist die Verwendung einer Struktur möglicherweise nicht die einzige Option.

Um dieses Problem zu lösen, kann die xml.Marshaler-Schnittstelle verwendet werden:

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

Durch die Implementierung der MarshalXML-Methode für einen benutzerdefinierten StringMap-Typ kann die Karte als XML gemarshallt werden.

So verwenden Sie das gemarshallte XML:

<code class="go">output, err := xml.MarshalIndent(data, "", "  ")</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiert man eine Go-Map in XML-Daten?. 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