我正在 Go 中開發一個 twilio 電話服務器,并且有一些引用要生成的 xml 的結構。例如:type Say struct { XMLName xml.Name `xml:"Say"` Text string `xml:",chardata"`}type Response struct { XMLName xml.Name `xml:"Response"` Says []Say `xml:",omitempty"`}當 Says 數組填充兩個包含“Something”和“Something else”的 Say 結構時,會生成:<Response> <Say>Something</Say> <Say>Something else</Say></Response>但在大聲說出“某事”之后,就沒有停頓,緊接著就出現了“其他事”。twilio 為此創建了一個暫停標簽,讓它暫停一秒鐘。所以我想要的是生成這樣的 xml:<Response> <Say>Something</Say> <Pause></Pause> <Say>Something else</Say> <Pause></Pause></Response>但這如何在 go 結構中表示呢?如何擠入額外的 Pause 標簽作為 Say 標簽的同級標簽?type Say struct { XMLName xml.Name `xml:"Say"` Text string `xml:",chardata"` ???? Pause `xml:Pause,sibling?????`}type Response struct { XMLName xml.Name `xml:"Response"` Says []Say `xml:",omitempty"`}
1 回答

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
找到了使用接口的解決方案
type Say struct {
XMLName xml.Name `xml:"Say"`
Text string `xml:",chardata"`
}
type Response struct {
XMLName xml.Name `xml:"Response"`
Says []interface{}
}
缺少實際類型名稱不會生成“Says”標簽。
var r Response
r.Says = append(r.Says, Say { Text: "hello"})
- 1 回答
- 0 關注
- 149 瀏覽
添加回答
舉報
0/150
提交
取消