Table des matières
1. Importez le package XML
2. 创建XML结构体
3. 将XML解析到结构体中
4. 将结构体编组为XML
5. 操作XML元素
6. 总结
Maison développement back-end Golang Comment utiliser XML dans Go ?

Comment utiliser XML dans Go ?

May 11, 2023 pm 04:04 PM
go语言 (go) xml解析 (xml parsing) 库(libraries)

XML est un format d'échange de données courant. En langage Go, il existe de nombreuses façons de manipuler XML. Voici comment utiliser XML dans Go.

1. Importez le package XML

Tout d'abord, vous devez importer la bibliothèque standard encoding/xml dans le programme Go. encoding/xml标准库。

import "encoding/xml"
Copier après la connexion

2. 创建XML结构体

在Go中,使用结构体来表示XML数据。这里以一个示例XML作为例子。

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>
Copier après la connexion

可以创建以下Go结构体来表示它:

type Bookstore struct {
    XMLName xml.Name `xml:"bookstore"`
    Books   []Book   `xml:"book"`
}

type Book struct {
    XMLName xml.Name `xml:"book"`
    Category  string    `xml:"category,attr"`
    Title  string    `xml:"title"`
    Author string    `xml:"author"`
    Year   int       `xml:"year"`
    Price  float32   `xml:"price"`
}
Copier après la connexion

3. 将XML解析到结构体中

然后,可以使用xml.Unmarshal()函数将XML数据解析到Go结构体中。

xml_data := []byte(`<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>`)

var bookstore Bookstore
err := xml.Unmarshal(xml_data, &bookstore)
if err != nil {
    fmt.Println("error: ", err)
    return
}

fmt.Println(bookstore)
Copier après la connexion

xml.Unmarshal()将XML数据解析为结构体,并将结果存储在bookstore变量中。

4. 将结构体编组为XML

反过来,可以用xml.Marshal()函数将结构体编组为XML数据。

bookstore := Bookstore {
    XMLName: xml.Name{Local: "bookstore"},
    Books: []Book{
        Book{
            Category: "children",
            Title:    "Harry Potter",
            Author:   "J.K. Rowling",
            Year:     2005,
            Price:    29.99,
        },
        Book{
            Category: "web",
            Title:    "Learning XML",
            Author:   "Erik T. Ray",
            Year:     2003,
            Price:    39.95,
        },
    },
}

xml_data, err := xml.MarshalIndent(bookstore, "", "  ")
if err != nil {
    fmt.Println("error: ", err)
}
fmt.Printf("%s
", xml_data)
Copier après la connexion

xml.MarshalIndent()函数将bookstore结构体编组为XML数据,并将结果存储在变量xml_data中。第一个参数是要编组的结构体,第二个参数是在每一行前要用的缩进字符串,第三个参数是在每个元素之间使用的字符串。

5. 操作XML元素

在结构体中,可以使用XML名称(如<book>)和XML属性(如category)作为结构体字段的标签。

type Book struct {
    XMLName xml.Name `xml:"book"`
    Category string `xml:"category,attr"`
    Title    string `xml:"title"`
    Author   string `xml:"author"`
    Year     int    `xml:"year"`
    Price    int    `xml:"price"`
}
Copier après la connexion

当解析XML时,结构体字段的值将根据XML数据自动填充。

6. 总结

使用以上步骤可以在Go中使用XML。首先需要导入encoding/xmlrrreee

2. Créer une structure XML🎜🎜Dans Go, les structures sont utilisées pour représenter les données XML. Voici un exemple de XML à titre d'exemple. 🎜rrreee🎜Vous pouvez créer la structure Go suivante pour la représenter :🎜rrreee🎜3. Analysez le XML dans la structure🎜🎜Ensuite, vous pouvez utiliser la fonction xml.Unmarshal() pour analyser le XML. données en Go dans la structure. 🎜rrreee🎜xml.Unmarshal() analyse les données XML dans une structure et stocke le résultat dans la variable bookstore. 🎜🎜4. Marshall la structure en XML🎜🎜À votre tour, vous pouvez utiliser la fonction xml.Marshal() pour marshaler la structure en données XML. 🎜rrreee🎜 La fonction xml.MarshalIndent() rassemble la structure librairie en données XML et stocke le résultat dans la variable xml_data. Le premier paramètre est la structure à regrouper, le deuxième paramètre est la chaîne en retrait à utiliser avant chaque ligne et le troisième paramètre est la chaîne à utiliser entre chaque élément. 🎜🎜5. Manipuler les éléments XML🎜🎜Dans la structure, vous pouvez utiliser des noms XML (tels que <book>) et des attributs XML (tels que category) comme structure. étiquette des champs. 🎜rrreee🎜Lors de l'analyse XML, les valeurs des champs de structure seront automatiquement renseignées en fonction des données XML. 🎜🎜6. Résumé🎜🎜Utilisez les étapes ci-dessus pour utiliser XML dans Go. Tout d'abord, vous devez importer la bibliothèque encoding/xml, puis définir une structure pour représenter les données XML. Les données XML peuvent être analysées dans cette structure, ou cette structure peut être utilisée pour marshaler les données XML. Pour exploiter des éléments XML, vous devez utiliser le nom et les attributs de l'élément XML dans la balise de champ de structure. 🎜

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment traiter et exploiter l'analyse et la génération de types de données XML en PHP Comment traiter et exploiter l'analyse et la génération de types de données XML en PHP Jul 15, 2023 pm 01:45 PM

PHP est un langage de script côté serveur couramment utilisé dans le domaine du développement Web. Dans le processus de développement Web, il est souvent nécessaire de traiter et d'exploiter des types de données XML, comme l'analyse et la génération de fichiers XML. Cet article présentera comment gérer et exploiter les types de données XML en PHP et fournira des exemples de code pertinents. 1. Analyser les données XML L'analyse des données XML est le processus de conversion de fichiers XML en structures de données en PHP. En PHP, vous pouvez utiliser la classe SimpleXML ou DOMDocument pour analyser

Comment utiliser les constantes dans Go ? Comment utiliser les constantes dans Go ? May 11, 2023 pm 04:52 PM

Dans Go, les constantes sont des identifiants qui conservent une valeur fixe et ne changent pas tout au long de l'exécution du programme. Les constantes dans Go sont déclarées à l'aide du mot-clé const. Dans cet article, nous explorerons comment utiliser les constantes dans Go. Comment déclarer une constante Déclarer une constante dans Go est très simple, il suffit d'utiliser le mot-clé const. Le format est le suivant : constidentifier[type]=value où identifier est le nom de la constante

Comment implémenter le regroupement d'itinéraires en langage Go Comment implémenter le regroupement d'itinéraires en langage Go Dec 17, 2023 pm 11:09 PM

Le langage Go est un langage de programmation simple et efficace qui est également largement utilisé dans le domaine du développement web. Dans le développement Web, le routage est un élément essentiel. Le regroupement de routage est une fonction de routage plus avancée, qui peut rendre le code plus clair et concis, et améliorer la lisibilité et la maintenabilité du code. Cet article présentera en détail comment implémenter le regroupement de routage dans le langage Go, à la fois du point de vue du principe et de l'implémentation du code. 1. Principe de regroupement Le regroupement d'itinéraires équivaut à regrouper et gérer des itinéraires présentant des caractéristiques similaires. Par exemple, nous pouvons convertir toutes les API

Expérience pratique : bonnes pratiques dans les projets de développement du langage Go Expérience pratique : bonnes pratiques dans les projets de développement du langage Go Nov 02, 2023 pm 01:07 PM

Résumé : Cet article présente principalement les meilleures pratiques dans les projets de développement du langage Go. En expliquant l'expérience en matière de conception de structure de projet, de gestion des erreurs, de traitement simultané, d'optimisation des performances et de tests, il aide les développeurs à mieux faire face aux défis des projets réels. 1. Conception de la structure du projet Avant de démarrer un projet en langage Go, une bonne conception de la structure du projet est cruciale. Une bonne structure de projet peut améliorer l'efficacité de la collaboration en équipe et mieux gérer le code et les ressources du projet. Voici quelques bonnes pratiques pour la structure du projet : Séparez le code autant que possible

Comment utiliser le langage Go pour la pratique de la parallélisation de code Comment utiliser le langage Go pour la pratique de la parallélisation de code Aug 02, 2023 am 09:12 AM

Comment utiliser le langage Go pour la pratique de la parallélisation de code Dans le développement de logiciels modernes, les performances sont une considération très importante. Afin d'améliorer l'efficacité de l'exécution du code, nous pouvons utiliser la technologie de programmation parallèle. En tant que langage de programmation concurrent, le langage Go dispose d'une multitude d'outils et de fonctionnalités de parallélisation qui peuvent nous aider à réaliser une bonne parallélisation du code. Cet article explique comment utiliser le langage Go pour la pratique de la parallélisation de code, du traitement simultané de base à l'optimisation d'algorithmes parallèles complexes. Traitement simultané de base Le traitement simultané fait référence à l'exécution de plusieurs tâches en même temps.

Comment optimiser la sérialisation et la désérialisation JSON dans le développement du langage Go Comment optimiser la sérialisation et la désérialisation JSON dans le développement du langage Go Jul 01, 2023 pm 09:01 PM

Comment optimiser la sérialisation et la désérialisation JSON dans le développement du langage Go. Dans le développement du langage Go, JSON (JavaScriptObjectNotation) est un format de sérialisation et de désérialisation fréquemment utilisé. Il est concis, lisible et facile à interagir sur différentes plates-formes. Cependant, lors du traitement de données volumineuses ou de scénarios de concurrence élevée, les performances de sérialisation et de désérialisation JSON peuvent devenir un goulot d'étranglement en termes de performances. Cet article présentera quelques méthodes d'optimisation pour la sérialisation et la désérialisation JSON dans le développement du langage Go.

Comment fonctionne le mécanisme de garbage collection en langage Go ? Comment fonctionne le mécanisme de garbage collection en langage Go ? Jun 10, 2023 am 08:55 AM

Le langage Go est un langage de programmation open source à typage statique développé par Google et lancé en 2009. Il se caractérise par une syntaxe simple, des performances élevées, une programmation simultanée pratique, etc., il est donc apprécié par de plus en plus de programmeurs. Dans le langage Go, il n'est généralement pas nécessaire de gérer manuellement la mémoire car il fournit un mécanisme de garbage collection qui peut gérer automatiquement la mémoire. Alors, comment fonctionne le mécanisme de récupération de place dans le langage Go ? Cet article vous le présentera. Collecte des déchets en langage Go

Méthodes pour résoudre les fuites de mémoire dans les applications Websocket en langage Go Méthodes pour résoudre les fuites de mémoire dans les applications Websocket en langage Go Dec 14, 2023 pm 01:46 PM

La méthode pour résoudre la fuite de mémoire de l'application Websocket en langage Go nécessite des exemples de code spécifiques. Websocket est un protocole qui implémente une communication en duplex intégral sur le réseau et est souvent utilisé pour la transmission et le push de données en temps réel. En langage Go, nous pouvons écrire des applications Websocket en utilisant le module WebSocket de la bibliothèque standard net/http. Cependant, lors du développement d'applications Websocket, nous pouvons rencontrer des fuites de mémoire, entraînant une dégradation des performances de l'application, voire même une perte de mémoire.

See all articles