Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan XML dalam Go?

Bagaimana untuk menggunakan XML dalam Go?

王林
王林asal
2023-05-11 16:04:361410semak imbas

XML ialah format pertukaran data biasa. Dalam bahasa Go, terdapat banyak cara untuk memanipulasi XML. Berikut ialah cara menggunakan XML dalam Go.

1. Import pakej XML

Mula-mula, anda perlu mengimport pustaka standard encoding/xml ke dalam program Go.

import "encoding/xml"

2. Cipta struktur XML

Dalam Go, struktur digunakan untuk mewakili data XML. Berikut ialah contoh XML sebagai contoh.

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

boleh mencipta struktur Go berikut untuk mewakilinya:

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 Parsing XML ke dalam struktur

Kemudian, anda boleh menggunakan fungsi xml.Unmarshal() untuk menghuraikan. data XML Dihuraikan ke dalam struktur 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() menghuraikan data XML ke dalam struktur dan menyimpan hasilnya dalam pembolehubah bookstore.

4. Marshall struktur ke dalam XML

Sebaliknya, anda boleh menggunakan fungsi xml.Marshal() untuk menyusun struktur ke dalam data XML. Fungsi

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() mengawal struktur bookstore ke dalam data XML dan menyimpan hasilnya dalam pembolehubah xml_data. Parameter pertama ialah struktur yang akan dikumpulkan, parameter kedua ialah rentetan inden yang akan digunakan sebelum setiap baris, dan parameter ketiga ialah rentetan yang akan digunakan antara setiap elemen.

5. Manipulasi elemen XML

Dalam struktur, anda boleh menggunakan nama XML (seperti 463aef0d2da08708f472268a99530dbe) dan atribut XML (seperti category) sebagai teg untuk medan struktur.

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"`
}

Apabila menghuraikan XML, nilai medan struktur akan diisi secara automatik berdasarkan data XML.

6 Ringkasan

Gunakan langkah di atas untuk menggunakan XML dalam Go. Mula-mula, anda perlu mengimport pustaka encoding/xml, dan kemudian menentukan struktur untuk mewakili data XML. Data XML boleh dihuraikan ke dalam struktur ini, atau struktur ini boleh digunakan untuk menyusun data XML. Untuk mengendalikan elemen XML, anda perlu menggunakan nama dan atribut elemen XML dalam teg medan struktur.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan XML dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn