1 回答

TA貢獻1802條經驗 獲得超5個贊
一種不需要實現自定義解組器邏輯的簡單解決方案是創建一個Translation具有 2 個字段的結構:1 個用于可選文本內容,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 關注
- 153 瀏覽
添加回答
舉報