Go语言中用xml.MarshalIndent可生成格式化XML字符串,需确保结构体字段首字母大写、添加xml标签(如xml:"name"或xml:",omitempty"),并传入结构体指针、空前缀和缩进符(如" "),错误需检查,XML声明需手动拼接xml.Header。
Go语言中用 xml.MarshalIndent 可以把结构体转成格式化(带缩进)的XML字符串,关键是要确保结构体字段可导出、有
合适的XML标签,并正确调用函数。
字段名必须大写(可导出),推荐加上 xml struct tag 明确字段名、是否省略空值、是否作为属性等:
xml 包无法访问xml:"name" 指定XML元素名;xml:"name,attr" 表示作为属性;xml:",omitempty" 表示零值时忽略该字段例如:
type Person struct {传入结构体指针、前缀(通常为空)、缩进符(如两个空格或 "\t"):
&person,不然会静默失败(返回空字节)"";缩进符常用 " "(两个空格)或 "\t"
[]byte 和 error,记得检查错误示例代码:
person := Person{上面例子会输出类似:
xml.MarshalIndent 不自动加 ,如需声明,手动拼接即可:
xml.Header + string(data)xml.Header 是常量:"\n"
基本上就这些。不复杂但容易忽略指针和字段导出规则。