我正在尝试像这样解组一段 xml:
<message numerus="yes">
<source>%n part(s)</source>
<translation>
<numerusform>%n part</numerusform>
<numerusform>%n parts</numerusform>
</translation>
</message>
<message>
<source>Foo</source>
<translation>Bar</translation>
</message>
请注意,<translation>标签可以包含一个简单的字符串或多个<numerusform>标签。
使用 go 的 xml 包,我解组的结构如下所示:
type Message struct {
Source string `xml:"source"`
Numerus string `xml:"numerus,attr"`
Translation string `xml:"translation"`
NumerusForms []string `xml:"translation>numerusform"`
}
问题:要么字段Translation要么NumerusForms可以使用。如果同时使用此处所示的两者,则会发生错误:
Error on unmarshalling xml: main.Message field "Translation" with tag "translation" conflicts with field "NumerusForms" with tag "translation>numerusform"
非常合理,因为解组器无法决定如何处理<translation>标签。
有没有办法处理这个?可以有两个不同的命名字段(一个用于纯字符串,一个用于字符串列表,如上所示的结构)。
婷婷同学_
相关分类