知识点 xml
people.xml
<?xml version="1.0" encoding="UTF-8"?>
<people id="888">
<name>张三</name>
<address>海淀</address>
</people>
peoples.xml
<?xml version="1.0" encoding="UTF-8"?>
<peoples version="0.9">
<people id="1">
<name>张三</name>
<address>海淀</address>
</people>
<people id="2">
<name>李四</name>
<address>朝阳</address>
</people>
</peoples>
package main
import (
"encoding/xml"
"io/ioutil"
)
type People struct {
XMLName xml.Name `xml:"people"` //标签,go语言底层用的反射技术
Id int `xml:"id,attr"` //首字母必须大写,id是属性则必须加上.attr
Name string `xml:"name"`
Address string `xml:"address"`
}
type Peoples struct {
XMLName xml.Name `xml:"peoples"`
Version float64 `xml:"version,attr"`
Peos []People `xml:"people"`
}
func main() {
//解析xml到元素节点people
//peo := new(Peoples)
//b, _ := ioutil.ReadFile("peoples.xml")
//_ = xml.Unmarshal(b, peo)
//fmt.Println(peo)
//将结构体序列化为xml文件
pro := People{Id: 123, Name: "sghdajh", Address: "ahdj"}
//b, _ := xml.Marshal(pro)
b, _ := xml.MarshalIndent(pro, "", " ") //xml格式化函数
b = append([]byte(xml.Header), b...)
_ = ioutil.WriteFile("D:/people.xml", b, 0777)
}