Maison > développement back-end > Golang > le corps du texte

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

Patricia Arquette
Libérer: 2024-10-24 04:55:02
original
638 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal