Maison >développement back-end >Golang >Comment désorganiser des éléments XML avec des attributs et des valeurs à virgule flottante dans Go ?
Désassembler des éléments XML avec des attributs et des valeurs à virgule flottante dans Go
Pour désorganiser un élément XML comme celui fourni, avec un attribut et une valeur à virgule flottante, nous devons définir une structure Go qui correspond à la structure XML.
Définition de la structure
Considérons les deux définitions de structure données dans le question :
Première définition :
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? } type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
Deuxième définition :
<code class="go">type ThingElem struct { XMLName xml.Name `xml:"thing"` // Do I even need this? Prop int `xml:"prop,attr"` Value float // ??? }</code>
Aborder les options :
Solution finale :
<code class="go">type Thing struct { Prop int `xml:"prop,attr"` Value float64 `xml:",chardata"` } type Root struct { Things []Thing `xml:"thing"` }</code>
Dans cette solution, la structure Thing représente un seul élément XML, et la structure racine est un conteneur qui contient une tranche de structures Thing pour désassembler l'élément racine XML.
Exemple de code :
<code class="go">package main import ( "encoding/xml" "fmt" ) const xmlData = ` <root> <thing prop="1">1.23</thing> <thing prop="2">4.56</thing> </root> ` func main() { root := &Root{} if err := xml.Unmarshal([]byte(xmlData), root); err != nil { fmt.Println(err) return } fmt.Println(root.Things) }</code>
Ce code montre comment désorganiser l'élément XML dans une structure Go, y compris la suppression des espaces des valeurs à virgule flottante.
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!