XML作为一种数据交换和信息传递的格式已经十分普及。而随着Web服务日益广泛的应用, 现在XML在日常的开发工作中也扮演了愈发重要的角色。这一小节, 我们将就Go语言标 准包中的XML相关处理的包进行介绍。 这个小节不会涉及XML规范相关的内容(如需了解相关知识请参考其他文献),而是介绍 如何用Go语言来编解码XML文件相关的知识。 假如你是一名运维人员,你为你所管理的所有服务器生成了如下内容的xml的配置文件: <?xml version="1.0" encoding="utf-8"?>// 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) } Shanghai_VPN 127.0.0.1 Beijing_VPN 127.0.0.2
有疑问加站长微信联系(非本文作者)