package main
import (
"encoding/xml"
"fmt"
)
type person struct {
Name string
Age int
}
func main() {
p := person{Name: "張三", Age: 18}
//無(wú)縮進(jìn)生成xml
if data, err := xml.Marshal(p); err != nil {
fmt.Println(err)
return
}else{ //注意,else也在if data, err := xml.Marshal(p); err != nil作用域內(nèi),放在外面會(huì)找不到data
fmt.Println(string(data))
fmt.Println()
}
//有縮進(jìn)生成xml(第二個(gè)參數(shù):在每行的開(kāi)頭加的前綴。第三個(gè)參數(shù):縮進(jìn))
if data, err := xml.MarshalIndent(p, "", " "); err != nil {
fmt.Println(err)
return
}else{ //注意,else也在if data, err := xml.Marshal(p); err != nil作用域內(nèi),放在外面會(huì)找不到data
fmt.Println(string(data))
fmt.Println()
}
//全局輸出(不用包含在if-else里)
var data []byte
var err error
if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
fmt.Println(err)
return
}
fmt.Println(string(data))
fmt.Println()
//反序列化
p2 := new(person)
if err = xml.Unmarshal(data, p2);err != nil {
fmt.Println(err)
return
}
fmt.Println(p2)
fmt.Println()
//加上屬性
type new_person struct {
Name string `xml:"name,attr"`
Age int
}
new_p := new_person{Name: "lucy", Age: 18}
if data, err := xml.Marshal(new_p); err != nil {
fmt.Println(err)
return
}else{ //注意,else也在if data, err := xml.Marshal(p); err != nil作用域內(nèi),放在外面會(huì)找不到data
fmt.Println(string(data))
fmt.Println()
}
}
輸出:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、泉州網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、泉州網(wǎng)絡(luò)營(yíng)銷、泉州企業(yè)策劃、泉州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供泉州建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com