Maison  >  Article  >  développement back-end  >  Utilisez les fonctions fournies par le package encoding/xml pour encoder et décoder XML, et définir le format d'indentation.

Utilisez les fonctions fournies par le package encoding/xml pour encoder et décoder XML, et définir le format d'indentation.

PHPz
PHPzoriginal
2023-07-25 11:37:311151parcourir

Utilisez le package encoding/xml pour encoder et décoder XML, et définissez le format d'indentation

Dans le langage Go, le package encoding/xml fournit une série de fonctions pour encoder et décoder XML. Ces fonctions peuvent nous aider à convertir des données structurées en langage Go en données au format XML, et peuvent également convertir des données au format XML en données structurées en langage Go. Dans le même temps, nous pouvons également rendre le XML généré plus lisible en définissant le format d'indentation.

Avant d'encoder et de décoder XML, nous devons d'abord définir une structure pour représenter les données que nous souhaitons convertir. Par exemple, nous définissons une structure Person comme suit :

type Person struct {
    Name    string `xml:"name"`
    Age     int    `xml:"age"`
    Address string `xml:"address"`
}

Ensuite, nous pouvons utiliser la fonction xml.MarshalIndent pour encoder la structure dans une chaîne XML et définir le format d'indentation. L'exemple est le suivant :

func main() {
    p := &Person{
        Name:    "Alice",
        Age:     25,
        Address: "123 Main St",
    }
    
    xmlData, err := xml.MarshalIndent(p, "", "    ")
    
    if err != nil {
        fmt.Println("XML encoding error:", err)
        return
    }
    
    fmt.Println(string(xmlData))
}

Dans l'exemple ci-dessus, nous encodons la structure Person dans des données au format XML via la fonction xml.MarshalIndent et définissons le format d'indentation sur 4 espaces. Enfin, nous utilisons la fonction fmt.Println pour imprimer la chaîne XML générée.

Les résultats de sortie sont les suivants :

<Person>
    <name>Alice</name>
    <age>25</age>
    <address>123 Main St</address>
</Person>

En définissant le format d'indentation, les données XML générées sont plus faciles à lire et à comprendre.

En plus de l'encodage, nous pouvons également utiliser la fonction xml.Unmarshal pour décoder les données au format XML en données de structure dans le langage Go. L'exemple est le suivant :

func main() {
    xmlData := []byte(`
        <Person>
            <name>Alice</name>
            <age>25</age>
            <address>123 Main St</address>
        </Person>
    `)
    
    var p Person
    
    err := xml.Unmarshal(xmlData, &p)
    
    if err != nil {
        fmt.Println("XML decoding error:", err)
        return
    }
    
    fmt.Println("Name:", p.Name)
    fmt.Println("Age:", p.Age)
    fmt.Println("Address:", p.Address)
}

Dans l'exemple ci-dessus, nous définissons d'abord des données au format XML, puis utilisons la fonction xml.Unmarshal pour décoder les données XML en données de structure Personne. Enfin, nous utilisons la fonction fmt.Println pour imprimer les données décodées.

Le résultat de sortie est le suivant :

Name: Alice
Age: 25
Address: 123 Main St

Grâce aux fonctions fournies par le package encoding/xml, nous pouvons facilement encoder et décoder le XML, et nous pouvons définir le format d'indentation pour rendre le XML généré plus beau et plus lisible. Ces fonctions offrent un moyen simple mais puissant de traiter les données 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