我正在使用此课程来学习如何在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映射到众所周知的格式化结构,以避免在处理集合时进行数组操作和反射。