源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

golang解析xml的方法

  • 时间:2022-08-24 03:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:golang解析xml的方法
本文实例讲述了golang解析xml的方法。分享给大家供大家参考,具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处[url=http://xiazai.jb51.net/201607/yuanma/addresslist-LocList-xml(jb51.net).rar]本站下载[/url]。 完整示例代码:
[u]复制代码[/u] 代码如下:
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语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部