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)
}

 返回结果:

 

posted @ 2022-06-14 21:08  nLesxw  阅读(12)  评论(0编辑  收藏  举报