golang解析xml的方法
发布时间:2020-12-16 19:30:56 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解golang解析xml的方法。供大家参考研究具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处本站下载。 完整示例代码: 复制代码 代码如下:
本篇章节讲解golang解析xml的方法。分享给大家供大家参考,具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处本站下载。 完整示例代码: 复制代码 代码如下: package main
import ( "os" "encoding/xml" // "encoding/json" "io/ioutil" "fmt" ) type Location struct { CountryRegion []CountryRegion } type CountryRegion struct { Name string `xml:",attr"` Code string `xml:",attr"` State []State } type State struct { Name string `xml:",attr"` City []City } type City struct { Name string `xml:",attr"` Region []Region } type Region struct { Name string `xml:",attr"` } func main() { f,err := os.Open("LocList.xml") if err != nil { panic(err) } data,err := ioutil.ReadAll(f) if err != nil { panic(err) } // v := make(map[string]interface{}) var v Location err = xml.Unmarshal(data,&v) if err != nil { panic(err) } // fmt.Printf("%#vn",v) // table for _,countryRegion := range v.CountryRegion { // fmt.Printf("%s,%sn",countryRegion.Code,countryRegion.Name) if len(countryRegion.State) == 0 { continue } for _,state := range countryRegion.State { // fmt.Printf("%s,%s,state.Code,state.Name) if len(state.City) == 0 { continue } for _,city := range state.City { // fmt.Printf("%s,city.Code,city.Name) if len(city.Region) == 0 { continue } for _,region := range city.Region { fmt.Printf("%s,region.Code,region.Name) } } } } // // json // js,err := json.Marshal(&v.CountryRegion[0]) // if err != nil { // panic(err) // } // fmt.Printf("%sn",js) } 希望本文所述对大家Go语言程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |