Maison > Article > développement back-end > Comment personnaliser l'analyse de date pour les champs time.Time dans Go lors de la désorganisation du XML ?
Analyse de date XML personnalisée dans Go avec time.Time Fields
Golang offre la flexibilité nécessaire pour regrouper les données XML dans des structures personnalisées, mais ce n'est pas le cas. Il ne prend pas en charge la spécification de formats de date personnalisés pour les champs time.Time lors du démarshaling XML. Cela peut entraîner des erreurs d'analyse lorsque le format de date renvoyé diffère du format Go par défaut.
Solution CustomUnmarshaler
Pour surmonter cette limitation, vous pouvez créer une structure personnalisée avec un champ time.Time anonyme et implémentez votre propre méthode UnmarshalXML. Cette méthode analysera la chaîne de date en utilisant votre format personnalisé et définira le champ time.Time en conséquence.
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 }
Incorporation de la structure personnalisée
Mettez à jour votre structure de transaction pour incluez le champ d'heure personnalisé :
type Transaction struct { //... DateEntered customTime `xml:"enterdate"` //... }
Maintenant, la désorganisation XML utilisera la structure customTime et analysera la chaîne de date en fonction de votre format défini.
Notes supplémentaires
Si l'élément XML utilise un attribut pour la date, vous devez implémenter UnmarshalXMLAttr de la même manière. Reportez-vous à l'exemple dans l'extrait de code fourni pour obtenir des conseils.
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!