在go中使用xml节点名序序列化int

时间:2017-06-20 04:28:07

标签: xml go

我正在学习一些东西,但是我无法控制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>没有正确命名。

有没有办法告诉序列化不呈现根节点,或者将属性直接放入父节点?

1 个答案:

答案 0 :(得分:1)

是。根据{{​​3}}的文档,您可以使用标记",chardata"

type number struct {
    Number int64 `xml:",chardata"`
}

这会输出<number>2</number>,如xml.Marshal

所示