Maison > développement back-end > Golang > Comment désorganiser XML avec des attributs dynamiques dans Go ?

Comment désorganiser XML avec des attributs dynamiques dans Go ?

Susan Sarandon
Libérer: 2024-11-19 03:33:02
original
1045 Les gens l'ont consulté

How to Unmarshal XML with Dynamic Attributes in Go?

Golang : Unmarshalling XML avec des attributs dynamiques

Introduction :
Dans Go, encoding/xml fournit un moyen efficace et polyvalent de gérer les données XML. Cependant, lorsqu'il s'agit d'éléments XML possédant des attributs dynamiques, la désorganisation devient difficile en raison du nombre inconnu et des types d'attributs présents.

Question :
Comment pouvez-vous désorganiser les balises XML avec attributs dynamiques dans Go alors que vous n'anticipez pas les attributs exacts qui seront rencontrés ?

Réponse :
Avant fin 2017, cela n'était pas directement pris en charge dans le démarshalling XML de Go. Cependant, grâce aux progrès du package encoding/xml, cette fonctionnalité a été implémentée.

Pour désorganiser les balises XML avec des attributs dynamiques, vous pouvez utiliser la syntaxe suivante :

type MyStruct struct {
    Attributes []xml.Attr `xml:",any,attr"`
}
Copier après la connexion

Voici un exemple pour illustrer son fonctionnement :

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    type MyStruct struct {
        Attributes []xml.Attr `xml:",any,attr"`
    }

    data := `<TAG ATTR1="VALUE1" ATTR2="VALUE2" />`

    var v MyStruct

    if err := xml.Unmarshal([]byte(data), &v); err != nil {
        panic(err)
    }

    fmt.Println(v.Attributes)
}
Copier après la connexion

Dans cet exemple, le type MyStruct définit un champ nommé Attributs. La balise xml:"...,any,attr" demande au programme de désagrégation d'attribuer tous les attributs XML à ce champ sous forme de tranches xml.Attr.

Lorsque le programme de désagrégation rencontre les données XML fournies dans la variable de données, il réussit à désorganiser les attributs inconnus (ATTR1 et ATTR2) dans le champ Attributs de la structure v. Cela permet une gestion dynamique des éléments XML avec différents ensembles d'attributs.

Notez que cette fonctionnalité nécessite Go version 1.9 ou ultérieure.

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.cn
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