咖啡伴侶

          呆在上海
          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)
          }


          主站蜘蛛池模板: 电白县| 青冈县| 安宁市| 凤庆县| 太谷县| 麻阳| 新晃| 阜阳市| 乡宁县| 固镇县| 汶川县| 安义县| 郧西县| 开阳县| 沙湾县| 兴和县| 武清区| 将乐县| 固阳县| 甘泉县| 岳阳市| 漠河县| 苏尼特右旗| 察隅县| 枝江市| 富阳市| 高尔夫| 百色市| 七台河市| 沙坪坝区| 克东县| 永平县| 奈曼旗| 南漳县| 遵义县| 曲靖市| 华宁县| 比如县| 乌兰县| 阿拉善左旗| 镇平县|