如果字段为空,则避免XML整数解析错误

时间:2013-07-10 13:42:49

标签: go

考虑这两个XML文档

<a>
  <b nil="true"></b>
</a>

<a>
  <b type="integer">1</b>
</a>

如何在转到类型b的{​​{1}}结构字段中正确解组此XML,而不会在第一种情况下产生int错误?

在这种情况下,

strconv.ParseInt: parsing "": invalid syntax似乎不起作用。

示例:http://play.golang.org/p/fbhVJ4zUbl

2 个答案:

答案 0 :(得分:1)

omitempty标签只与Marshal尊重,而不是Unmarshal。

如果int值不是实际的int,则解组错误。

相反,将B更改为字符串。然后,使用strconv包将B转换为int。如果错误,请将其设置为0.

试试此代码段:http://play.golang.org/p/1zqmlmIQDB

答案 1 :(得分:0)

您可以使用“github.com/guregu/null”包。它有所帮助:

display: table-cell;
vertical-align: middle;