1 回答
TA贡献1868条经验 获得超4个赞
结构中的 结构标记包含 ,但它似乎不需要。如果将其更改为 ,则解析似乎执行正确的操作:RoGamesrorootgame
type ro struct {
RoGames []roGame `xml:"game"`
}
而且,由于您已经“进入”标记,因此无需将其添加到结构的每个字段。gameroGame
需要注意的另一件事是,您应该在解析时处理所有错误,因为使用上面的修复程序会发生新的错误。只有在调整解析器代码时才注意到它:
var ro ro
err = xml.Unmarshal(inBytes, &ro)
if err != nil {
panic(err)
}
首先,这会输出以下内容:
panic: strconv.ParseInt: parsing "z0046-54": invalid syntax
这是因为结构定义中的字段是 一个 ,但它的数据是 ,它不能被解释为整数。Idintz0046-54
因此,如果我们改变它,我们将为您的结构获得以下结果:roGame
type roGame struct {
Id string `xml:"id"` // <-- Change is here
Black string `xml:"black"`
White string `xml:"white"`
Moves string `xml:"moves"`
Alt5 string `xml:"alt_5"`
Rule string `xml:"rule"`
Winner string `xml:"winner"`
}
现在,代码以有用的格式输出数据。您还可以使用这样的工具来生成结构,这样可以使其更容易并且不易出错。
- 1 回答
- 0 关注
- 70 浏览
添加回答
举报