##### 有一个需求,想生成以下的xml:
```xml
<a>
<b></b>
<c></c>
<b></b>
<c></c>
...
</a>
```
##### 希望是b标签和c标签可以像数组一样不定长度插入
##### 如果用struct转XML,里面的key不能重复,这就有点尴尬了。
##### 麻烦各位大神教导一下,十分感谢!
type A struct {
XMLName xml.Name `xml:"a"`
Bs []B `xml:"b"
Cs []C `xml:"c"
}
type B struct{
XMLName xml.Name `xml:"b"`
}
type C struct{
XMLName xml.Name `xml:"c"`
}
...
paramStream, err := xml.Marshal(a)
...
#2
更多评论
试一试
``` go
package main
import(
"fmt"
"encoding/xml"
)
type A struct {
XMLName xml.Name `xml:"a"`
Values []interface{}
}
type B struct {
XMLName xml.Name `xml:"b"`
}
type C struct {
XMLName xml.Name `xml:"c"`
}
func main(){
a := A{}
a.Values = []interface{}{B{},C{},B{},C{}}
output, _ := xml.MarshalIndent(a, " ", " ")
fmt.Println(string(output))
}
```
#1
```go
type A struct { XMLName xml.Name xml:"a" Bs []B xml:&#34;b&#34; Cs []Cxml:"c" } type B struct{ XMLName xml.Name xml:"b" } type C struct{ XMLName xml.Name xml:"c" } ... paramStream, err := xml.Marshal(a) ...
```
#3