Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich XML in Go?

Wie verwende ich XML in Go?

王林
王林Original
2023-05-11 16:04:361389Durchsuche

XML ist ein gängiges Datenaustauschformat. In der Go-Sprache gibt es viele Möglichkeiten, XML zu bearbeiten. Hier erfahren Sie, wie Sie XML in Go verwenden.

1. Importieren Sie das XML-Paket

Zuerst müssen Sie die Standardbibliothek encoding/xml in das Go-Programm importieren. encoding/xml标准库。

import "encoding/xml"

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>

可以创建以下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"`
}

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)

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)

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

5. 操作XML元素

在结构体中,可以使用XML名称(如463aef0d2da08708f472268a99530dbe)和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"`
}

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

6. 总结

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

2. XML-Struktur erstellen #🎜🎜##🎜🎜#In Go werden Strukturen zur Darstellung von XML-Daten verwendet. Hier ist ein Beispiel-XML als Beispiel. #🎜🎜#rrreee#🎜🎜#Sie können die folgende Go-Struktur erstellen, um es darzustellen: #🎜🎜#rrreee#🎜🎜#3. Parsen Sie das XML in die Struktur #🎜🎜##🎜🎜#Dann können Sie verwenden xml.Unmarshal() analysiert XML-Daten in eine Go-Struktur. #🎜🎜#rrreee#🎜🎜#xml.Unmarshal()Parst XML-Daten in eine Struktur und speichert das Ergebnis in der Variablen bookstore. #🎜🎜##🎜🎜#4. Ordnen Sie die Struktur in XML an.#🎜🎜##🎜🎜#Sie können wiederum die Funktion xml.Marshal() verwenden, um die Struktur in XML-Daten zumarshalieren . #🎜🎜#rrreee#🎜🎜#Die Funktion xml.MarshalIndent() marshallt die Struktur bookstore in XML-Daten und speichert das Ergebnis in der Variablen xml_data Code>. Der erste Parameter ist die zu gruppierende Struktur, der zweite Parameter ist die eingerückte Zeichenfolge, die vor jeder Zeile verwendet werden soll, und der dritte Parameter ist die Zeichenfolge, die zwischen den einzelnen Elementen verwendet werden soll. #🎜🎜##🎜🎜#5. XML-Elemente manipulieren #🎜🎜##🎜🎜#In der Struktur können Sie XML-Namen (z. B. <code>463aef0d2da08708f472268a99530dbe) und XML-Attribute (z. B als category) als Beschriftung des Strukturfeldes. #🎜🎜#rrreee#🎜🎜#Beim Parsen von XML werden die Werte der Strukturfelder automatisch basierend auf den XML-Daten ausgefüllt. #🎜🎜##🎜🎜#6. Zusammenfassung#🎜🎜##🎜🎜#Verwenden Sie die oben genannten Schritte, um XML in Go zu verwenden. Zuerst müssen Sie die Bibliothek encoding/xml importieren und dann eine Struktur zur Darstellung von XML-Daten definieren. XML-Daten können in diese Struktur geparst werden, oder diese Struktur kann zum Marshallen von XML-Daten verwendet werden. Um XML-Elemente zu bedienen, müssen Sie den Namen und die Attribute des XML-Elements im Strukturfeld-Tag verwenden. #🎜🎜#

Das obige ist der detaillierte Inhalt vonWie verwende ich XML in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn