Maison> développement back-end> Golang> le corps du texte

Comment utiliser XML dans Go ?

王林
Libérer: 2023-05-11 16:04:36
original
1338 Les gens l'ont consulté

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 standardencoding/xmldans le programme Go.encoding/xml标准库。

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

2. 创建XML结构体

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

   Harry Potter J.K. Rowling 2005 29.99   Learning XML Erik T. Ray 2003 39.95  
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(`   Harry Potter J.K. Rowling 2005 29.99   Learning XML Erik T. Ray 2003 39.95  `) 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名称(如)和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 XMLDans Go, les structures sont utilisées pour représenter les données XML. Voici un exemple de XML à titre d'exemple. rrreeeVous pouvez créer la structure Go suivante pour la représenter :rrreee3. Analysez le XML dans la structureEnsuite, 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 librairieen 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 XMLDans la structure, vous pouvez utiliser des noms XML (tels que ) et des attributs XML (tels que category) comme structure. étiquette des champs. rrreeeLors 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!

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 téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!