我是 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 方的替代方案是什么?
30秒到达战场
相关分类