开发工具:Goland。
xml文件,解析与json文件解析非常相似。只是用了不同的包。
比如一个xml文件,内容如下
<?xml version="1.0" encoding="utf-8"?>
<servers version="1">
<server>
<serverName>Shanghai_VPN</serverName>
<serverIP>127.0.0.1</serverIP>
</server>
<server>
<serverName>Beijing_VPN</serverName>
<serverIP>127.0.0.2</serverIP>
</server>
</servers>
文件中有4个字段,servers、server、serverName、serverIP,所以根据文件结构,构建两个结构体,
type server struct {
XMLName xml.Name `xml:"server"`
ServerName string `xml:"serverName"`
ServerIp string `xml:"serverIP"`
}
type Recurlyservers struct {
XMLName xml.Name `xml:"servers"`
Version string `xml:"version,attr"`
Svs []server `xml:"server"`
Description string `xml:",innerxml"`
}
接下来就是将读取到的数据,反序列化到结构体中,
func main() {
file, err := os.Open("config/servers.xml")
if err != nil {
fmt.Println(err)
}
defer file.Close()
body, err := ioutil.ReadAll(file)
data := new(Recurlyservers)
err = xml.Unmarshal(body, &data)
fmt.Println(data.XMLName)
fmt.Println(data.Description)
fmt.Println(data.Version)
fmt.Println(data.Svs)
}
运行结果
{ servers}
<server>
<serverName>Shanghai_VPN</serverName>
<serverIP>127.0.0.1</serverIP>
</server>
<server>
<serverName>Beijing_VPN</serverName>
<serverIP>127.0.0.2</serverIP>
</server>
1
[{{ server} Shanghai_VPN 127.0.0.1} {{ server} Beijing_VPN 127.0.0.2}]

本文介绍了如何使用Go语言解析XML格式的数据。通过Goland作为开发工具,解析XML文件与JSON文件的方法相类似,主要涉及Go语言中的xml包。示例中展示了如何根据XML文件结构创建对应的结构体,并进行数据的反序列化操作。

1056

被折叠的 条评论
为什么被折叠?



