Maison > Article > développement back-end > Comment analyser les champs Time.Time personnalisés dans Go XML ?
Analyse XML personnalisée pour les champs Time.Time dans Go
Lors de la désagrégation de données XML dans une structure Go, vous pouvez rencontrer une situation où le Le format du champ de date diffère du format time.Time par défaut, ce qui entraîne une erreur de démarshaling. Cette question examine les options disponibles pour spécifier un format de date personnalisé pendant le processus de démarshalage.
Le problème vient du fait que time.Time n'implémente pas l'interface xml.Unmarshaler, vous empêchant de spécifier une date personnalisée. format. En guise de solution, vous pouvez créer une structure wrapper avec un champ time.Time anonyme et implémenter votre propre méthode UnmarshalXML avec le format de date souhaité.
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 }
Cette approche vous permet de désorganiser des documents XML avec des formats de date personnalisés. tout en maintenant la sécurité du type. Si la date est stockée en tant qu'attribut, une approche similaire peut être utilisée en implémentant UnmarshalXMLAttr à la place. Un exemple de mise en œuvre est disponible sur http://play.golang.org/p/EFXZNsjE4a.
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!