Heim > Backend-Entwicklung > Golang > Wie kann ich dynamische XML-Elementnamen in Go marshalieren?

Wie kann ich dynamische XML-Elementnamen in Go marshalieren?

Mary-Kate Olsen
Freigeben: 2024-11-26 17:23:09
Original
318 Leute haben es durchsucht

How Can I Marshal Dynamic XML Element Names in Go?

Marshaling dynamischer XML-Elementnamen in Golang

Problem

Eine XML-Datei enthält mehrere Elemente mit ähnlichen Strukturen, aber unterschiedlichen Namen (z. B. PERSON und ABSENDER). Das Ziel besteht darin, eine Struktur zu definieren, die einen dynamischen Elementnamen ermöglicht.

Lösung

Während der anfängliche Versuch, den Elementnamen mithilfe der XMLName-Eigenschaft festzulegen, nicht erfolgreich war, ist dies möglich Nutzen Sie hierzu die folgenden Strategien:

  • Verwenden Sie den Typ xml.Name für XMLName: Laut Dokumentation erfordert das Feld XMLName den Typ xml.Name Typ.
type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}
Nach dem Login kopieren
  • Legen Sie den Elementnamen dynamisch über xml.Name.Local fest: Um einen dynamischen Elementnamen zuzuweisen, verwenden Sie das Feld „Lokal“ von xml.Name.
person := Person { 
    XMLName: xml.Name { Local: "Person" },
    // ...
}
Nach dem Login kopieren
  • Exportierte Felder für die XML-Einbindung: Stellen Sie sicher, dass die Felder, die Elemente darstellen (z. B. E1 in diesem Beispiel), exportiert werden, indem Sie beginnen mit einem Großbuchstaben. Dadurch können sie in die XML-Ausgabe einbezogen werden.

Beispiel

Eine vollständige Implementierung finden Sie im folgenden Playground-Beispiel: http://play.golang.org/p/ bzSutFF9Bo.

Das obige ist der detaillierte Inhalt vonWie kann ich dynamische XML-Elementnamen in Go marshalieren?. 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