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

Bagaimana untuk menggunakan XML dalam Go?

王林
Lepaskan: 2023-05-11 16:04:36
asal
1431 orang telah melayarinya

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"
Salin selepas log masuk

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>
Salin selepas log masuk

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"`
}
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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 <book>) 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"`
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan