有一个结构,其成员之一是切片:type Package struct { Name string ... Files []File}type File struct { Name string ...}我曾经encoding/xml编组过这种结构。这就是我得到的:<Package> <Name>example</Name> <Files> <Name>Example1</Name> </Files> <Files> <Name>Example2</Name> </Files></Package>这不是我想要的行为。我想把它编组成这种格式:<Package> <Name>example</Name> <Files> <File> <Name>Example1</Name> </File> <File> <Name>Example2</Name> </File> </Files></Package>我是 Golang 的新手,对它的切片和编组机制知之甚少。虽然这听起来像是一个愚蠢的问题,但我怎样才能达到预期的(第二种)格式?
1 回答

凤凰求蛊
TA贡献1825条经验 获得超4个赞
编组和解组规则在encoding/xml. 例如上一节xml.Marshal说:
如果字段使用标签“a>b>c”,则元素 c 将嵌套在父元素 a 和 b 中。名称相同的相邻字段将包含在一个 XML 元素中。
所以你应该能够通过这个实现你想要的:
type Package struct {
Name string
Files []File `xml:"Files>File"`
}
// this also works
type Package struct {
Name string
Files []File `xml:">File"`
}
https://play.golang.org/p/gg-6Tj3WNnV
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消