1 回答
TA贡献1844条经验 获得超8个赞
一种不需要实现自定义解组器逻辑的简单解决方案是创建一个Translation具有 2 个字段的结构:1 个用于可选文本内容,一个用于可选<numerusform>子元素:
type Message struct {
Source string `xml:"source"`
Numerus string `xml:"numerus,attr"`
Translation Translation `xml:"translation"`
}
type Translation struct {
Content string `xml:",cdata"`
NumerusForms []string `xml:"numerusform"`
}
这将输出(在Go Playground上尝试):
Source: %n part(s)
Numerus: yes
Translation: "\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t"
NumerusForms: [%n part %n parts]
Numerus: %n part
Numerus: %n parts
Source: Foo
Numerus:
Translation: "Bar"
NumerusForms: []
请注意,当实际存在<numerusform>子元素时,该Translation.Content字段仍会填充缩进字符,您可以放心地忽略这些字符。
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报