1 回答
TA贡献1875条经验 获得超3个赞
如果您在同一个父标签下有多个同名标签,您总是可以使用一个切片来保存所有出现的标签,无论它们是彼此相邻枚举还是在它们之间有其他标签。
完整地说,这是您要解析的 XML 片段:
<cap:geocode>
<valueName>FIPS6</valueName>
<value>002090 002290</value>
<valueName>UGC</valueName>
<value>AKZ222</value>
</cap:geocode>
所以简单地改变你的geocode结构:
type geocode struct {
ValueName1 string `xml:"valueName"`
Value1 string `xml:"value"`
ValueName2 string `xml:"valueName"`
Value2 string `xml:"value"`
}
对此:
type geocode struct {
ValueNames []string `xml:"valueName"`
Values []string `xml:"value"`
}
以及打印它们的代码:
gc := v.Entries[0].Geocode
log.Println(len(gc.Values))
log.Println(gc.ValueNames)
log.Println(gc.Values)
for i := range gc.Values {
fmt.Printf("ValueName=%s, Value=%s\n", gc.ValueNames[i], gc.Values[i])
}
输出(在Go Playground上尝试修改后的源):
2009/11/10 23:00:00 2
2009/11/10 23:00:00 [FIPS6 UGC]
2009/11/10 23:00:00 [002090 002290 AKZ222]
ValueName=FIPS6, Value=002090 002290
ValueName=UGC, Value=AKZ222
- 1 回答
- 0 关注
- 427 浏览
添加回答
举报