Maison >développement back-end >Golang >Comment gérer les attributs XML inconnus lors du démarchage dans Go ?

Comment gérer les attributs XML inconnus lors du démarchage dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-23 12:20:11912parcourir

How to Handle Unknown XML Attributes During Unmarshalling in Go?

Désorganisation des attributs XML avec des quantités inconnues à l'aide de Golang

Dans Golang, la désorganisation du XML implique l'analyse des données XML dans une structure, permettant une manipulation pratique des données et la récupération. Cependant, certains scénarios nécessitent la gestion d'attributs XML inattendus, où les noms et valeurs d'attribut peuvent varier selon les instances.

Le package encoding/xml prend en charge la désorganisation des éléments XML avec des attributs dynamiques via xml:",any ,attr". Cette fonctionnalité permet la collecte de tous les attributs dans une tranche de xml.Attr au sein de la structure.

Pour illustrer cette fonctionnalité, considérons le code suivant :

package main

import (
    "encoding/xml"
    "fmt"
)

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

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

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

Une fois exécuté, ce code afficher ce qui suit :

[{ATTR1 VALUE1} {ATTR2 VALUE2}]

Chaque entrée dans la tranche Attributs représente un attribut, composé de son nom (par exemple, "ATTR1") et de sa valeur (par exemple, "VALUE1").

Cette amélioration permet aux développeurs de travailler avec des documents XML contenant des attributs inconnus ou dynamiques, faisant de Go un outil encore plus polyvalent pour le traitement XML.

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