XML与Go结构互转实现(序列化及反序列化)

在Golang编程中,对象序列化成XML,或者从XML反序列化为对象是很常见的情况。

先前这里文章,可以点击直达了解一下:
根据XML生成Golang结构代码工具

介绍了代码生成工具,可便于根据报文直接快速生成代码,这样不用一个一个字段手写。

然后就可以根据生成的结构编写代码:

例如:

go 复制代码
type XML struct {
	XMLName xml.Name `xml:"xml"`
	Text    string   `xml:",chardata"`
	Abc     string   `xml:"abc"`
}

func main() {
	xmlSrc := []byte(`<xml>
		<abc>123</abc>
	</xml>`)

	var x XML
	xml.Unmarshal(xmlSrc, &x)

	if x.Abc == "123" {
		fmt.Println("ok")
	}
}

关键代码:

反序列化用:

xml.Unmarshal(xmlSrc, &x)

序列化用:

xml, err := xml.MarshalIndent(x, "", " ")

参数2是每行前缀,参数3是缩进,这里使用缩进符号tab

相关推荐
l1t1 小时前
DeepSeek辅助利用搬移底层xml实现快速编辑xlsx文件的python程序
xml·开发语言·python·xlsx
C_Liu_2 小时前
C++:list
开发语言·c++
my rainy days3 小时前
C++:友元
开发语言·c++·算法
小梁努力敲代码3 小时前
java数据结构--List的介绍
java·开发语言·数据结构
云知谷3 小时前
【HTML】网络数据是如何渲染成HTML网页页面显示的
开发语言·网络·计算机网络·html
lly2024064 小时前
SQL ROUND() 函数详解
开发语言
大宝剑1704 小时前
python环境安装
开发语言·python
lly2024064 小时前
CSS3 多媒体查询
开发语言
天***88965 小时前
js封装一个双精度算法实现
开发语言·前端·javascript