有一個結構,其成員之一是切片: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 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消