咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          golang xml 處理

          Posted on 2013-08-12 17:03 oathleo 閱讀(1632) 評論(0)  編輯  收藏 所屬分類: Golang
          將xml文件解析成對應的struct對象是通過xml.Unmarshal來完成的,這個過程是如何實現的?可以看到我們的struct定義后面多了一些類似于xml:"serverName"這樣的內容,這個是struct的一個特性,它們被稱為 struct tag,它們是用來輔助反射的。


          package main

          import (
              "encoding/xml"
              "fmt"
              "os"
          )

          type Servers struct {
              XMLName xml.Name `xml:"servers"`
              Version string   `xml:"version,attr"`
              Svs     []server `xml:"server"`
          }

          type server struct {
              ServerName string `xml:"serverName"`
              ServerIP   string `xml:"serverIP"`
          }

          func main() {
              v := &Servers{Version: "1"}
              v.Svs = append(v.Svs, server{"Shanghai_VPN", "127.0.0.1"})
              v.Svs = append(v.Svs, server{"Beijing_VPN", "127.0.0.2"})
              output, err := xml.MarshalIndent(v, "  ", "    ")
              if err != nil {
                  fmt.Printf("error: %v\n", err)
              }
              os.Stdout.Write([]byte(xml.Header))

              os.Stdout.Write(output)
          }


          主站蜘蛛池模板: 邛崃市| 苗栗县| 蓝田县| 古蔺县| 伊通| 长岛县| 台南县| 南通市| 怀宁县| 镇平县| 淳化县| 新巴尔虎左旗| 长沙市| 石门县| 南汇区| 灌云县| 托克托县| 大庆市| 太仆寺旗| 石门县| 枣强县| 梓潼县| 乌拉特中旗| 巴里| 遂溪县| 无为县| 浙江省| 渝北区| 常德市| 色达县| 云安县| 永寿县| 怀来县| 抚远县| 和田市| 涿鹿县| 甘泉县| 建昌县| 千阳县| 辽阳县| 阿拉尔市|