咖啡伴侶

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

          golang xml 處理

          Posted on 2013-08-12 17:03 oathleo 閱讀(1626) 評論(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)
          }


          主站蜘蛛池模板: 奉贤区| 宿松县| 林口县| 井研县| 安仁县| 湟源县| 沁水县| 高淳县| 进贤县| 石门县| 尚志市| 保德县| 稷山县| 北辰区| 泾川县| 南木林县| 花莲县| 西昌市| 浮梁县| 布尔津县| 宜川县| 东丰县| 乌鲁木齐县| 额敏县| 新邵县| 临漳县| 扶沟县| 潼南县| 嘉义县| 柳林县| 浮梁县| 大新县| 璧山县| 紫金县| 竹北市| 和静县| 林西县| 洛南县| 余庆县| 大竹县| 神农架林区|