是否有一种方法可以在以下示例中封送XML,以便MyElement
下的子元素在根MyXML
下编组,如下所示:
type MyXML struct {
XMLName xml.Name `xml:"myXML"`
Element *MyElement `xml:",any"`
}
type MyElement struct {
A string `xml:"a"`
B string `xml:"b"`
C string `xml:"c"`
}
我想得到以下结果:
<myXML>
<a>blah</a>
<b>blah</b>
<c>blah</c>
</myXML>
如果我按照我的方式进行编组:
<myXML>
<Element>
<a>blah</a>
<b>blah</b>
<c>blah</c>
</Element>
</myXML>
这可以通过MyElement结构实现xml.Marshaler接口吗?
谢谢!
答案 0 :(得分:0)
您可以在结构上使用XMLName
类型的xml.Name
字段,将其整理到您喜欢的名称。
type MyXML struct {
XMLName xml.Name `xml:"myXML"`
A string `xml:"a"`
B string `xml:"b"`
C string `xml:"c"`
}
func main() {
testXML := MyXML{
A: "test a",
B: "test b",
C: "test c",
}
xmlBytes, err := xml.Marshal(testXML)
if err != nil {
fmt.Printf("error parsing xml: %s", err)
return
}
fmt.Println(string(xmlBytes))
}