在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))
}
Run Code Online (Sandbox Code Playgroud)
产生输出:
<person>
<Name>John Smith</Name>
<Starsign>Capricorn</Starsign>
</person>
Run Code Online (Sandbox Code Playgroud)
我的问题是,人类型是小写的"p",因为我希望它是私有的包.但我更喜欢XML元素是大写的:<Person>.结构中的字段可以使用标记(例如`xml:"name"`)对结构字段编组到其他名称,但这似乎不是结构类型的选项.
我有一个使用模板的解决方法,但知道一个更好的答案会很高兴.