知识点 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)
}
 


posted @ 2019-08-17 15:39  初见未来  阅读(213)  评论(0编辑  收藏  举报