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# winform FTP功能
开发语言·windows·c#
minji...26 分钟前
C++ string类(STL简介 , string类 , 访问修改字符)
开发语言·c++
Forward♞32 分钟前
Qt——文件操作
开发语言·c++·qt
老虎06271 小时前
JavaWeb前端02(JavaScript)
开发语言·前端·javascript
Python私教2 小时前
YggJS RLogin暗黑霓虹主题登录注册页面 版本:v0.1.1
开发语言·javascript·ecmascript
carver w2 小时前
MFC,C++,海康SDK,回调,轮询
开发语言·c++·mfc
王廷胡_白嫖帝2 小时前
Qt猜数字游戏项目开发教程 - 从零开始构建趣味小游戏
开发语言·qt·游戏
XH华2 小时前
C语言第九章字符函数和字符串函数
c语言·开发语言
一个会的不多的人2 小时前
C# NX二次开发:操作按钮控件Button和标签控件Label详解
开发语言·c#