【问题标题】:Serialize int with xml node name in go在go中用xml节点名序列化int
【发布时间】:2017-06-20 12:57:45
【问题描述】:

我只是在学习我的一些方法,但我无法控制 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>,它的命名不正确。

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

【问题讨论】:

    标签: xml go


    【解决方案1】:

    是的。根据xml.Marshal 的文档,您可以使用标签",chardata"

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

    这会输出<number>2</number>,如https://play.golang.org/p/Aoqfs04OTx所示

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 2015-05-22
      • 2016-08-24
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多