我正在学习一些东西,但是我无法控制XML序列化
我想将一个int序列化为<number>1</number>
,我尝试了以下内容:
package main
import (
"fmt"
"encoding/xml"
)
type number struct {
Number int64
}
func main() {
out, _ := xml.Marshal(number{2})
fmt.Println(string(out))
}
(https://play.golang.org/p/Ac-p1q3ytZ)
但是我得到<number><Number>2</Number></number>
由于它的结构而被双重包装。如果我只是序列化一个int,我得到的<int>2</int>
没有正确命名。
有没有办法告诉序列化不呈现根节点,或者将属性直接放入父节点?
答案 0 :(得分:1)
是。根据{{3}}的文档,您可以使用标记",chardata"
。
type number struct {
Number int64 `xml:",chardata"`
}
这会输出<number>2</number>
,如xml.Marshal