go解析XML

@H_502_0@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) }

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念