Maison >développement back-end >Golang >Comment définir dynamiquement les noms d'éléments XML dans Go Structs ?

Comment définir dynamiquement les noms d'éléments XML dans Go Structs ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 15:34:10622parcourir

How to Dynamically Set XML Element Names in Go Structs?

Définition dynamique des noms d'éléments XML dans Go

Considérons un fichier XML avec deux éléments de structure identique, à l'exception des noms d'éléments. Pour représenter ces éléments dans Go, une structure avec un nom d'élément dynamique est souhaitée.

type Person struct {
    XMLName string `xml:"???` // How to make this dynamic?
    E1 string `xml:"ELEM1"`
    E2 string `xml:"ELEM2"`
    E3 string `xml:"ELEM3"`
    E4 string `xml:"ELEM4"`
}

Le type xml.Name est introduit ici. Son champ Local permet le paramétrage dynamique des noms d'éléments :

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}

Au moment de l'exécution, le nom de l'élément peut être attribué :

person := Person{
    XMLName: xml.Name{Local: "Person"},
    // ...
}

Notez que les champs de structure (E1 - E4) doit être exporté (commencer par des lettres majuscules) pour être inclus dans la sortie XML.

Pour un exemple pratique, reportez-vous à ce qui suit aire de jeux :

http://play.golang.org/p/bzSutFF9Bo

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