Comprendre la désorganisation des éléments XML dans Golang
La désorganisation des éléments XML dans les structures Go peut être simple, mais certains aspects peuvent nécessiter des clarifications. Cet article aborde les spécificités du démarshalage des éléments XML avec des attributs et des valeurs à virgule flottante.
Structs et démarshaling
Pour démarshaler XML, vous devez définir une structure Go correspondante . Les attributs et les valeurs de l'élément XML sont mappés aux champs de la structure. Par exemple, le code suivant définit une structure ThingElem qui représente un objet
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? }</code>
Cependant, étant donné que l'élément XML contient une valeur à virgule flottante, le champ Valeur n'a actuellement pas son type.
Utilisation de la valeur pour décomposer la virgule flottante Values
Pour désorganiser la valeur à virgule flottante, vous pouvez utiliser l'annotation Value. Cela indique au démarshaler de mapper le texte dans le
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float64 // Use float64 for float value }</code>
XMLName et Unmarshaling
Le champ XMLName est utilisé pour spécifier le nom de l'élément XML associé à la structure. En règle générale, vous ne devez utiliser XMLName qu'en cas d'ambiguïté dans la détermination de l'élément à mapper à une structure. Dans ce cas, il n'y a pas d'ambiguïté, donc utiliser XMLName n'est pas nécessaire.
Envelopper la structure
Si vous préférez, vous pouvez envelopper la structure ThingElem dans une autre structure pour gérer l'élément racine :
<code class="go">type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
Ce wrapper fournit un moyen de regrouper les éléments de structure ThingElem pour plus de commodité.
Exemple XML
Pour Pour illustrer le processus de démarshalage, voici un exemple du XML que vous avez fourni :
<code class="xml"><thing prop="1"> 1.23 </thing> <thing prop="2"> 4.56 </thing></code>
En utilisant la structure ThingElem et en suivant les instructions ci-dessus, vous devriez être en mesure de démarshaler avec succès ce XML dans des structures Go.
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!