在 Go 中动态定义 XML 元素名称
考虑一个 XML 文件,其中两个元素具有相同的结构(元素名称除外)。为了在 Go 中表示这些元素,需要一个具有动态元素名称的结构体。
type Person struct { XMLName string `xml:"???` // How to make this dynamic? E1 string `xml:"ELEM1"` E2 string `xml:"ELEM2"` E3 string `xml:"ELEM3"` E4 string `xml:"ELEM4"` }
这里引入了 xml.Name 类型。它的 Local 字段允许动态设置元素名称:
type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... }
在运行时,可以分配元素名称:
person := Person{ XMLName: xml.Name{Local: "Person"}, // ... }
请注意,结构体字段 (E1 - E4)必须导出(以大写字母开头)才能包含在 XML 输出中。
有关实际示例,请参阅以下内容游乐场:
http://play.golang.org/p/bzSutFF9Bo
以上是如何在 Go Structs 中动态设置 XML 元素名称?的详细内容。更多信息请关注PHP中文网其他相关文章!