在Golang中使用encoding/xml包生成soap xml
我想制作一个示例xml,根据切片的值重复一个字段。但最终的结果并不理想 我要创建的XML在Golang中使用encoding/xml包生成soap xml,xml,go,Xml,Go,我想制作一个示例xml,根据切片的值重复一个字段。但最终的结果并不理想 我要创建的XML recipients = ["num1","num2",...] //Start XML . . . <SendDetail> <item><Mobile>num1</Mobile></item> <
recipients = ["num1","num2",...]
//Start XML
.
.
.
<SendDetail>
<item><Mobile>num1</Mobile></item>
<item><Mobile>num2</Mobile></item>
...
</SendDetail>
type item struct {
Mobile []string `xml:"Mobile"`
}
type sendDetail struct {
Item *[]item `xml:"item"`
}
SendDetail: &sendDetail{
Item:&[]item{
item{
Mobile:recipients,
},
},
},
结果
<SendDetail>
<item>
<Mobile>num1</Mobile>
<Mobile>num2</Mobile>
</item>
</SendDetail>
num1
num2
任何指针都将受到欢迎。在
内的XML中只有一个
标记。您不想重复
标记,但要重复
标记。因此,在围棋中,你必须为每个数字创建一个新的项目
模型如下:
type Item struct {
Mobile string `xml:"Mobile"`
}
type SendDetail struct {
Items []*Item `xml:"item"`
}
使用该模型的示例:
recipients := []string{"num1", "num2"}
sd := &SendDetail{}
for _, recipient := range recipients {
sd.Items = append(sd.Items, &Item{Mobile: recipient})
}
data, err := xml.MarshalIndent(sd, "", " ")
if err != nil {
panic(err)
}
fmt.Println(string(data))
输出(在上尝试):
num1
num2
看起来您想要的是物品。移动设备是字符串,而不是字符串片段。非常感谢@icza
<SendDetail>
<item>
<Mobile>num1</Mobile>
</item>
<item>
<Mobile>num2</Mobile>
</item>
</SendDetail>