0

我正在使用 Golang 来读取 XML 响应。我无法正确读取带空格的值。

这是一个要点:https ://gist.github.com/anonymous/5825288

有没有办法让 xml.Unmarshal 修剪值<result>,然后将其视为 int?

IE

<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.
4

1 回答 1

4

即使在 xml “1”中,这是一个字符串而不是 int,解析器也无法将此字符串解析为 int。所以 0 只是默认的 int 值,

如果您将代码更改为:

err:= xml.Unmarshal([]byte(payload), &mt)
if err != nil {
  fmt.Println(err)
}

如果您的 xml 可以将“1”作为值,您将看到在解析过程中出现错误,我建议在您的结构中使用字符串。或者如果有机会,告诉 xml 的创建者只使用 int 而不是字符串,其中需要使用 int

于 2013-06-20T20:17:59.030 回答