亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在對 XML 文件進行 Go 解組時如何獲得更多錯誤詳細信息?

在對 XML 文件進行 Go 解組時如何獲得更多錯誤詳細信息?

Go
侃侃無極 2022-11-28 14:49:35
我是 Golang 的新手,但上手很快。我正在開發一個涉及解析以 XML 表示的模式的工具。直覺上,我一直在使用xml.Unmarshal標準庫中的 Go 來避免編寫自己的解析器。但是,當 unmarshal 函數失敗時,我注意到它并沒有真正詳細說明失敗的位置或行。如果 XML 模式有數百行,這將非常麻煩。下面的代碼是我如何從文件中讀取 XML,它似乎是在 Go 中讀取 XML 文件的一種非常標準的方法。    xmlFile, err := os.Open(file)    if err != nil {        fmt.Println("Error attempting to open file: ", err)        return    }    defer xmlFile.Close()    var schema xmlschema.TFP    // Read in the bytes    byteValue, err := ioutil.ReadAll(xmlFile)    if err != nil {        fmt.Println(err)        return    }    // Read in the data into the structure    err = xml.Unmarshal(byteValue, &schema)    if err != nil {        fmt.Println(err)        return    }當然,考慮到我是 Go 的新手,也許這不是讀取 XML 文件的最佳方式。有沒有辦法讓 Go 的xml/encoding庫顯示更多關于為什么它無法解組文件的詳細信息?如果不是,那么第 3 方的替代方案是什么?
查看完整描述

1 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

從我所看到的使用 go 和 xml 的情況來看,沒有辦法從 xml.Unmarshal() 方法返回的任何錯誤中獲取更多調試信息。

我不確定您看到的是什么錯誤,但請記住,go 庫是為僅支持 XML 1.0 版而構建的。另外:https ://pkg.go.dev/encoding/xml#pkg-note-BUG

不幸的是,與 json 支持相比,go 對 xml 解析的支持并不是很好。如果可能的話,我建議嘗試將您的輸入數據格式化為 json 之類的格式,以避免很多麻煩。也缺乏對xml解析的第三方包支持。

我看過像https://github.com/beevik/etree這樣的東西,你可能會感興趣。盡管 Go 的 XML 解析器很少有積極的開發......


查看完整回答
反對 回復 2022-11-28
  • 1 回答
  • 0 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號