Wie analysiere ich benutzerdefinierte Time.Time-Felder in Go XML?

Patricia Arquette
Freigeben: 2024-11-08 12:12:02
Original
943 Leute haben es durchsucht

How to Parse Custom Time.Time Fields in Go XML?

Benutzerdefiniertes XML-Parsing für Time.Time-Felder in Go

Beim Unmarshaling von XML-Daten in eine Go-Struktur kann es vorkommen, dass die Das Datumsfeldformat unterscheidet sich vom Standardformat „time.Time“, was zu einem Unmarshaling-Fehler führt. Diese Frage befasst sich mit den verfügbaren Optionen zum Angeben eines benutzerdefinierten Datumsformats während des Unmarshaling-Prozesses.

Das Problem ergibt sich aus der Tatsache, dass time.Time die xml.Unmarshaler-Schnittstelle nicht implementiert, sodass Sie kein benutzerdefiniertes Datum angeben können Format. Als Lösung können Sie eine Wrapper-Struktur mit einem anonymen time.Time-Feld erstellen und Ihre eigene UnmarshalXML-Methode mit dem gewünschten Datumsformat implementieren.

type Transaction struct {
    //...
    DateEntered     customTime     `xml:"enterdate"` // use your own type that satisfies UnmarshalXML
    //...
}

type customTime struct {
    time.Time
}

func (c *customTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
    const shortForm = "20060102" // yyyymmdd date format
    var v string
    d.DecodeElement(&v, &start)
    parse, err := time.Parse(shortForm, v)
    if err != nil {
        return err
    }
    *c = customTime{parse}
    return nil
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie XML-Dokumente mit benutzerdefinierten Datumsformaten entmarshalieren unter Wahrung der Typensicherheit. Wenn das Datum als Attribut gespeichert wird, kann ein ähnlicher Ansatz verwendet werden, indem stattdessen UnmarshalXMLAttr implementiert wird. Eine Beispielimplementierung ist unter http://play.golang.org/p/EFXZNsjE4a verfügbar.

Das obige ist der detaillierte Inhalt vonWie analysiere ich benutzerdefinierte Time.Time-Felder in Go XML?. 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