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

相关推荐
饼干,几秒前
第5天python内容
开发语言·python
froginwe111 分钟前
Ruby 发送邮件 - SMTP
开发语言
DKunYu13 分钟前
1.多线程初阶
java·开发语言
ccut 第一混15 分钟前
用c# 制作一个扑克牌小游戏
开发语言·c#
听风吟丶20 分钟前
Java 9 + 模块化系统实战:从 Jar 地狱到模块解耦的架构升级
开发语言·python·pycharm
做怪小疯子1 小时前
JavaScript 中Array 整理
开发语言·前端·javascript
旭编1 小时前
牛客周赛 Round 117
java·开发语言
六元七角八分1 小时前
CSDN文章如何转出为PDF文件保存
开发语言·javascript·pdf
froginwe111 小时前
MongoDB 删除数据库
开发语言
Java小混子1 小时前
golang项目CRUD示例
开发语言·后端·golang