【发布时间】:2012-09-13 03:14:05
【问题描述】:
在 Go 中,您可以将结构编组为 XML,例如:
package main
import (
"encoding/xml"
"fmt"
)
type person struct {
Name string
Starsign string
}
func main() {
p := &person{"John Smith", "Capricorn"}
b,_ := xml.MarshalIndent(p,""," ")
fmt.Println(string(b))
}
产生输出:
<person>
<Name>John Smith</Name>
<Starsign>Capricorn</Starsign>
</person>
我的问题是,人员类型是小写的“p”,因为我希望它对包是私有的。但我更喜欢 XML 元素为大写:<Person>。可以使用标签(例如`xml:“name”`)针对结构字段将结构中的字段编组为其他名称,但这似乎不是结构类型的选项。
我有一个使用模板的解决方法,但很高兴知道一个更好的答案。
【问题讨论】:
标签: xml-serialization go