Maison >développement back-end >Golang >Encodage et décodage XML à l'aide des fonctions fournies par le package encoding/xml

Encodage et décodage XML à l'aide des fonctions fournies par le package encoding/xml

WBOY
WBOYoriginal
2023-07-24 12:00:191060parcourir

Utilisez les fonctions fournies par le package encoding/xml pour l'encodage et le décodage XML

Introduction :
L'encodage et le décodage sont une opération très courante lors du traitement de données XML. Dans le langage Go, vous pouvez utiliser les fonctions fournies par le package encoding/xml pour implémenter des opérations de codage et de décodage XML. Cet article explique comment utiliser les fonctions du package encoding/xml pour le codage et le décodage XML, et fournit des exemples de code correspondants.

Encodage XML :
L'encodage XML consiste à convertir des structures ou des types de données en langage Go en données au format XML. Le package encoding/xml fournit la fonction Marshal pour implémenter les opérations de codage XML. Le prototype de la fonction Marshal est le suivant :

func Marshal(v interface{}) ([]byte, error)

La fonction Marshal encode une valeur v en XML et renvoie les données codées de type []byte. Voici un exemple d'encodage XML :

package main

import (

"encoding/xml"
"fmt"

)

type Person struct {

Name string `xml:"name"`
Age  int    `xml:"age"`

}

func main() {

person := Person{
    Name: "Alice",
    Age:  20,
}

xmlData, err := xml.Marshal(person)
if err != nil {
    fmt.Println("XML encoding error:", err)
    return
}

fmt.Println(string(xmlData))

}
Résultat de sortie :
8abf60ac54173a2785e603c7a1f95b4e 8a11bc632ea32a57b3e3693c7987c420Alicedf406f776eecbaf16b62325323196f14ff4fd28be6111b38109cb452b13c2daa203c0b87764dcdf259cfde0951b2fe8a3a87557f2588643ab3f9da3e7296be4d29

Dans le code ci-dessus, nous définissons une structure nommée Person, qui comporte deux champs, à savoir Nom et Âge. Dans le champ de la structure, une balise xml:"tag" est utilisée, qui permet de spécifier le nom de l'élément en XML. Dans la fonction principale, nous créons une instance de type Person person et l'encodons dans des données au format XML. Enfin, les données codées []byte sont converties en chaîne via la fonction fmt.Println et imprimées.

Décodage XML :
Le décodage XML consiste à analyser les données au format XML en structures ou types de données dans le langage Go. Le package encoding/xml fournit la fonction Unmarshal pour implémenter les opérations de décodage XML. Le prototype de la fonction Unmarshal est le suivant :

func Unmarshal(data []byte, v interface{}) error

La fonction Unmarshal reçoit deux paramètres Le premier paramètre est les données XML à décoder, et le deuxième paramètre. est la valeur décodée. La valeur de la variable. Voici un exemple de décodage XML :

package main

import (

"encoding/xml"
"fmt"

)

type Person struct {

Name string `xml:"name"`
Age  int    `xml:"age"`

}

func main() {

xmlData := []byte("<Person><name>Alice</name><age>20</age></Person>")

var person Person
err := xml.Unmarshal(xmlData, &person)
if err != nil {
    fmt.Println("XML decoding error:", err)
    return
}

fmt.Println(person)

}
Résultat de sortie :
{Name:Alice Age:20}

Dans le code ci-dessus, nous définissons une structure nommée Personne, qui comporte deux champs, à savoir Nom et Âge. Dans la fonction principale, nous créons des données au format XML xmlData, puis les décodons en une instance person de type Person. Enfin, la variable de personne décodée est imprimée via la fonction fmt.Println.

Nous pouvons également utiliser d'autres fonctions fournies par le package encoding/xml pour traiter davantage les données XML, telles que les paramètres des options d'encodage et de décodage, le traitement des espaces de noms XML, etc. Pour plus de détails, consultez la documentation officielle du langage Go.

Résumé :
Cet article explique comment utiliser les fonctions fournies par le package encoding/xml pour effectuer des opérations d'encodage et de décodage XML, et fournit des exemples de code correspondants. Les données XML peuvent être facilement traitées à l'aide du package encoding/xml, ce qui rend leur utilisation dans le langage Go plus simple et plus efficace. J'espère que cet article pourra être utile pour votre travail d'apprentissage et de développement en matière d'encodage et de décodage 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