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
Libérer: 2024-11-26 17:23:09
original
316 Les gens l'ont consulté

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"`
    // ...
}
Copier après la connexion
  • 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" },
    // ...
}
Copier après la connexion
  • 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!

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