package main
import (
"encoding/xml"
"fmt"
"os"
)
type Website struct {
Name string `xml:"name,attr"`
Url string
Course []string
}
func main() {
//实例化对象
info := Website{"C语言中文网", "http://c.biancheng.net/golang/", []string{"Go语言入门教程", "Golang入门教程"}}
f, err := os.Create("./info.xml")
if err != nil {
fmt.Println("文件创建失败", err.Error())
return
}
defer f.Close()
//序列化到文件中
encoder := xml.NewEncoder(f)
err = encoder.Encode(info)
if err != nil {
fmt.Println("编码错误:", err.Error())
return
} else {
fmt.Println("编码成功")
}
}
运行上面的代码会在当前目录生成一个 info.xml 文件,文件的内容如下所示:
<Website name="C语言中文网">
<Url>http://c.biancheng.net/golang/</Url>
<Course>Go语言入门教程</Course>
<Course>Golang入门教程</Course>
</Website>
package main
import (
"encoding/xml"
"fmt"
"os"
)
type Website struct {
Name string `xml:"name,attr"`
Url string
Course []string
}
func main() {
//打开xml文件
file, err := os.Open("./info.xml")
if err != nil {
fmt.Printf("文件打开失败:%v", err)
return
}
defer file.Close()
info := Website{}
//创建 xml 解码器
decoder := xml.NewDecoder(file)
err = decoder.Decode(&info)
if err != nil {
fmt.Printf("解码失败:%v", err)
return
} else {
fmt.Println("解码成功")
fmt.Println(info)
}
}
运行结果如下:
go run main.go
解码成功
{C语言中文网 http://c.biancheng.net/golang/ [Go语言入门教程 Golang入门教程]}
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有