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

相关推荐
玖釉-1 分钟前
C++ 硬核剖析:if 语句中的“双竖杠” || 到底怎么运行的?
开发语言·c++
满满和米兜3 分钟前
【Java基础】- 集合-HashSet与TreeSet
java·开发语言·算法
zhangzeyuaaa11 分钟前
Python推导式(Comprehensions)
开发语言·python
m0_7167652312 分钟前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
卷心菜狗13 分钟前
Python进阶基础--面向对象编程(OOP)
开发语言·python
开心码农1号14 分钟前
RabbitMQ 生产运维命令大全
linux·开发语言·ruby
网安INF15 分钟前
数据结构第二章复习:线性表
java·开发语言·数据结构
aq553560018 分钟前
Laravel10.X核心特性全解析
java·开发语言·spring boot·后端
练习时长一年20 分钟前
浅谈assembly插件打包分发机制
xml