我有一个结构type Response struct { Verbs []interface{}}以及其他一些动词结构,如type Verb1 struct{ Field1 string ...}type Verb2 struct{ Field2 int ...} 如何从对象&Response{Verbs: []interface{}{Verb1{}, Verb2{}, Verb1{}}}获取 XML 之类的<Response><Verb1>...</Verb1><Verb2>...</Verb2><Verb1>...</Verb1></Response>?我尝试使用encoding/xml但它生成元素Verbs太像<Response><Verbs><Verb1>...</Verb1><Verb2>...</Verb2><Verb1>...</Verb1></Verbs></Response>如何避免世代相传<Verbs>?
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
您需要Verb明确命名类型。
package main
import (
"encoding/xml"
"fmt"
)
type Root struct {
Container []interface{}
}
type A struct {
XMLName xml.Name `xml:"A"`
Value string `xml:",chardata"`
}
type B struct {
XMLName xml.Name `xml:"B"`
Value string `xml:",chardata"`
}
func main() {
r := Root{
Container: []interface{}{
A{Value: "a"},
B{Value: "b"},
},
}
text, _ := xml.Marshal(r)
fmt.Println(string(text))
}
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消