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 關注
- 92 瀏覽
添加回答
舉報