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!