我正在使用此课程来学习如何在GOlang中解析XML:https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/07.1.html我成功地获得了结果在那里显示:

1
{{ servers} 1 [{{ server} Shanghai_VPN 127.0.0.1} {{ server} Beijing_VPN 127.0.0.2}]

但是如何从每个字段中获取文本?例如,在打印v.Svs时,得到

1
[{{ server} Shanghai_VPN 127.0.0.1} {{ server} Beijing_VPN 127.0.0.2}].

我如何收到" Shanghai_VPN 127.0.0.1 "?


假设您正在使用该示例中的对象,以访问列表第一项的服务器名称和IP,则应使用以下内容:

1
2
fmt.Println(v.Svs[0].ServerName)
fmt.Println(v.Svs[0].ServerIP)

实际上,您应该迭代数组,因为您将不知道有多少个对象。这是一个正在发挥作用的例子。 https://play.golang.org/p/abnc9VaNlO

使用迭代和上面的输出格式将是;

1
2
3
for _, srv := range v.Svs {
     fmt.Println(srv.ServerName +"" + srv.ServerIP)
}
  • 非常感谢!完美运作。
  • 由于您遵循该示例,因此Go推荐的一种不错的做法是,您应始终将XML / JSON映射到众所周知的格式化结构,以避免在处理集合时进行数组操作和反射。