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) }
返回结果: