首页 >后端开发 >Golang >如何在 Go 中编组动态 XML 元素名称?

如何在 Go 中编组动态 XML 元素名称?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-26 17:23:09288浏览

How Can I Marshal Dynamic XML Element Names in Go?

在 Golang 中编组动态 XML 元素名称

问题

XML 文件包含多个具有相似结构但名称不同的元素(例如,PERSON 和发件人)。目标是定义一个允许动态元素名称的结构。

解决方案

虽然最初尝试使用 XMLName 属性设置元素名称没有成功,但可以实现通过利用以下策略来实现这一点:

  • 使用 xml.Name 类型作为 XMLName:根据文档,XMLName 字段需要 xml.Name type.
type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}
  • 通过 xml.Name.Local 动态设置元素名称:要分配动态元素名称,请使用 xml.Name 的 Local 字段。
person := Person { 
    XMLName: xml.Name { Local: "Person" },
    // ...
}
  • 用于 XML 包含的导出字段:确保代表元素的字段(例如本示例中的 E1)以大写字母开头导出。这允许它们包含在 XML 输出中。

示例

请参阅以下 Playground 示例以获取完整的实现:http://play.golang.org/p/ bzSutFF9Bo.

以上是如何在 Go 中编组动态 XML 元素名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn