Maison  >  Article  >  développement back-end  >  Comment désorganiser des éléments XML avec des attributs et des valeurs à virgule flottante dans Golang ?

Comment désorganiser des éléments XML avec des attributs et des valeurs à virgule flottante dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 04:55:02639parcourir

How to Unmarshal XML Elements with Attributes and Floating-Point Values in Golang?

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 Élément XML :

<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 balises au champ Value :

<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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn