XML ialah format pertukaran data biasa. Dalam bahasa Go, terdapat banyak cara untuk memanipulasi XML. Berikut ialah cara menggunakan XML dalam Go.
Mula-mula, anda perlu mengimport pustaka standard encoding/xml
ke dalam program Go.
import "encoding/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"` }
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
.
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.
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"` }
Apabila menghuraikan XML, nilai medan struktur akan diisi secara automatik berdasarkan data XML.
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!