我正在使用 Golang 读取 XML 响应。我无法正确读取带空格的值。
这是一个要点:https://gist.github.com/anonymous/5825288
有没有办法让 xml.Unmarshal 修剪 <result>
中的值?然后把它当作一个整数?
即
<result>1<result> // no spaces, is marshalled correctly. The resulting value in the struct is 1
但是
<result> 1 </result> // with spaces, is marshalled incorrectly as an int. The resulting value in the struct for result is 0.
最佳答案
即使在 xml 中,“1”也是一个字符串而不是一个 int, 解析器无法将此字符串解析为 int。所以 0 只是默认的 int 值,
如果您将代码更改为:
err:= xml.Unmarshal([]byte(payload), &mt)
if err != nil {
fmt.Println(err)
}
你会看到解析的时候出错了 如果您的 xml 可以将“1 ”作为值,我建议在您的结构中使用一个字符串。 或者,如果有机会,告诉 xml 的创建者只使用 int 而不是字符串,其中需要 int
关于go - 无法解码值中包含空格的负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222478/