前端之家收集整理的这篇文章主要介绍了
go解析XML,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
XML作为一种数据交换和信息传递的格式已经十分普及。而随着Web服务日益广泛的应用,
现在XML在日常的开发工作中也扮演了愈发重要的角色。这一小节, 我们将就Go语言标
准包中的XML相关处理的包进行介绍。
这个小节不会涉及XML规范相关的内容(如需了解相关知识请参考其他文献),而是介绍
如何用Go语言来编解码XML文件相关的知识。
假如你是一名运维人员,你为你所管理的所有服务器生成了如下内容的xml的配置文件:
<?xml version="1.0" encoding="utf-8"?>
Shanghai_VPN
127.0.0.1
Beijing_VPN
127.0.0.2
// GoTest project main.go
package main
import (
"encoding/xml"
"fmt"
"io/IoUtil"
"os"
)
type Recurlyservers struct {
XMLName xml.Name `xml:"servers"`
Version string `xml:"version,attr"`
Svs []server `xml:"server"`
Description string `xml:",innerxml"`
}
type server struct {
XMLName xml.Name `xml:"server"`
ServerName string `xml:"serverName"`
ServerIP string `xml:"serverIP"`
}
func main() {
file,err := os.Open("servers.xml")
if err != nil {
fmt.Println("error : &v",err)
return
}
data,err := IoUtil.ReadAll(file)
if err != nil {
fmt.Println("error &v",err)
return
}
v := Recurlyservers{}
err = xml.Unmarshal(data,&v)
if err != nil {
fmt.Println("error &v",err)
return
}
fmt.Println(v.XMLName)
fmt.Println(v.Version)
fmt.Println("--------------------")
fmt.Println(v.Svs[0].ServerName)
fmt.Println(v.Svs[0].ServerIP)
fmt.Println("--------------------")
fmt.Println(v.Svs[1].ServerName)
fmt.Println(v.Svs[1].ServerIP)
}
原文链接:https://www.f2er.com/xml/300212.html