国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

golang解析xml的方法

2020-04-01 19:10:38
字體:
來源:轉載
供稿:網友

本文實例講述了golang解析xml的方法。分享給大家供大家參考,具體如下:

golang解析xml真是好用,特別是struct屬性的tag讓程序簡單了許多,其他變成語言需要特殊類型的在golang里直接使用tag舒服

完整示例代碼:

復制代碼 代碼如下:
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語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 百色市| 濮阳县| 嵩明县| 柞水县| 黄大仙区| 上林县| 永福县| 天祝| 宁德市| 宜黄县| 兴宁市| 余庆县| 财经| 开江县| 都匀市| 广丰县| 湟源县| 宣汉县| 务川| 定陶县| 新闻| 宁波市| 谷城县| 隆林| 东台市| 巫山县| 平利县| 安多县| 盘锦市| 静安区| 新巴尔虎左旗| 霍城县| 军事| 安岳县| 即墨市| 长宁区| 大埔区| 凌海市| 凌海市| 贵州省| 贵州省|