Maison >développement back-end >Golang >Comment puis-je rassembler les noms d'éléments XML dynamiques dans Go ?

Comment puis-je rassembler les noms d'éléments XML dynamiques dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 17:23:09340parcourir

How Can I Marshal Dynamic XML Element Names in Go?

Marshaling des noms d'éléments XML dynamiques dans Golang

Problème

Un fichier XML contient plusieurs éléments avec des structures similaires, mais des noms différents (par exemple, PERSONNE et EXPÉDITEUR). L'objectif est de définir une structure qui permet un nom d'élément dynamique.

Solution

Bien que la tentative initiale de définir le nom de l'élément à l'aide de la propriété XMLName ait échoué, il est possible d'y parvenir ceci en tirant parti des stratégies suivantes :

  • Utilisez le type xml.Name pour XMLName : selon la documentation, le champ XMLName nécessite le xml.Name tapez.
type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}
  • Définissez le nom de l'élément de manière dynamique via xml.Name.Local : pour attribuer un nom d'élément dynamique, utilisez le champ Local de xml.Name.
person := Person { 
    XMLName: xml.Name { Local: "Person" },
    // ...
}
  • Champs exportés pour l'inclusion XML : assurez-vous que les champs représentant les éléments (par exemple, E1 dans cet exemple) sont exportés en commençant par une lettre majuscule. Cela leur permet d'être inclus dans la sortie XML.

Exemple

Référez-vous à l'exemple de terrain de jeu suivant pour une implémentation complète : 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