Golang中的XML tag主要用于在struct字段上指定XML序列化和反序列化时的名称、属性、命名空间等元数据。以下是常用的一些XML tag:
xml:"name"
:指定该字段在XML中对应的标签名称为”name”。xml:"attr"
:指定该字段在XML中对应的属性名称为”attr”。xml:"namespace,attr"
:指定该字段在XML中对应的命名空间为”namespace”,且是一个属性。xml:",chardata"
:表示该字段存储的是元素内部文本内容,而不是子元素或者属性值。xml:",innerxml"
:表示该字段存储整个子元素(包括标签)作为原始字符串。xml:",any"
:表示该字段可以匹配任何未知元素,将其存储为RawMessage类型。
例如:
type Person struct {
Name string `xml:"name"`
Age int `xml:"age,attr"`
Address string `xml:"address,omitempty"`
}
在以上示例代码中,Name
字段被映射到 XML 元素 <name>
,Age
字段被映射到 XML 属性 “age”。如果 Address 字段有值,则它会被序列化为 XML 元素 <address>
;否则,在序列化时将忽略它。