go_xml_learn
结构体转换为xml:
type Person struct {
XMLName xml.Name `xml:"person"`
Name string `xml:"name"`
Age int `xml:"age"`
Email string `xml:"email"`
}
func main() {
person := Person{
Name: "tom",
Age: 20,
Email: "tom@gmail.com",
}
//MarshalIndent函数中第二参数设置一级标题(<person>)空一格,第三个参数设置二级标题(<name>等)空二格
b, _ := xml.MarshalIndent(person, " ", " ")
fmt.Printf("%v\n", string(b))
}
返回结果:

xml转换为go对象
type Person struct {
XMLName xml.Name `xml:"person"`
Name string `xml:"name"`
Age int `xml:"age"`
Email string `xml:"email"`
}
func main() {
s := `
<person>
<name>tom</name>
<age>20</age>
<email>tom@gmail.com</email>
</person>
`
b := []byte(s)
var per Person
//Unmarshal第一个参数传递一个字节数组,第二个参数要设置为取地址,而且为一个对象
xml.Unmarshal(b, &per)
fmt.Printf("per: %v\n", per)
}
返回结果:


浙公网安备 33010602011771号