Go语言XML文件的读写操作
在 JSON 还未像现在这么广泛使用时,XML 的使用相当广泛。XML 作为一种数据交换和信息传递的格式,使用还是很广泛的,现在很多开放平台接口,基本都会支持 XML 格式。
Go语言内置的 encoding/xml 包可以用在结构体和 XML 格式之间进行编解码,其方式跟 encoding/json 包类似。然而与 JSON 相比 XML 的编码和解码在功能上更苛刻得多,这是由于 encoding/xml 包要求结构体的字段包含格式理的标签,而 JSON 格式却不需要。
写 XML 文件
使用 encoidng/xml 包可以很方便的将 xml 数据存储到文件中,示例代码如下:
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网站站点" rel="nofollow" />
<Website name="C语言中文网">
<Url>http://c.biancheng网站站点" rel="nofollow" />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网站站点" rel="nofollow" />