来源:自学PHP网 时间:2019-08-07 16:47 作者:小飞侠 阅读:次
[导读] golang解析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"` Code string `xml:",attr"` City []City } type City struct { Name string `xml:",attr"` Code string `xml:",attr"` Region []Region } type Region struct { Name string `xml:",attr"` Code 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("%#v\n", v) // table for _, countryRegion := range v.CountryRegion { // fmt.Printf("%s,%s\n", countryRegion.Code, countryRegion.Name) if len(countryRegion.State) == 0 { continue } for _, state := range countryRegion.State { // fmt.Printf("%s,%s,%s\n", countryRegion.Code, state.Code, state.Name) if len(state.City) == 0 { continue } for _, city := range state.City { // fmt.Printf("%s,%s,%s,%s\n", countryRegion.Code, state.Code, city.Code, city.Name) if len(city.Region) == 0 { continue } for _, region := range city.Region { fmt.Printf("%s,%s,%s,%s,%s\n", countryRegion.Code, state.Code, city.Code, region.Code, region.Name) } } } } // // json // js, err := json.Marshal(&v.CountryRegion[0]) // if err != nil { // panic(err) // } // fmt.Printf("%s\n", js) } 希望本文所述对大家Go语言程序设计有所帮助。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com