type UserInfo struct { Name string xml:"name" Age int xml:"age" Height float64 xml:"height" List []any xml:"item" }转换为xml,并在为list元素增加腹标签
时间: 2023-10-28 09:06:10 浏览: 149
strings.xml文件进行转换功能
可以使用Go语言内置的`encoding/xml`包来实现将`UserInfo`结构体转换为XML格式,并为`List`元素增加父标签,示例如下:
```go
package main
import (
"encoding/xml"
"fmt"
)
type UserInfo struct {
Name string `xml:"name"`
Age int `xml:"age"`
Height float64 `xml:"height"`
List []interface{} `xml:"items>item"`
}
func main() {
user := UserInfo{
Name: "Alice",
Age: 25,
Height: 1.68,
List: []interface{}{"apple", "banana", 123},
}
xmlData, err := xml.MarshalIndent(user, "", " ")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(xmlData))
}
```
在上面的代码中,`UserInfo`结构体的每个字段都使用了`xml`标签来指定XML节点的名称。`List`字段使用了`interface{}`类型来表示任意类型的数据,因为XML节点的内容可以是各种类型的数据,如字符串、整数等。在`xml.MarshalIndent`函数中,第一个参数为需要转换为XML的数据,第二个参数为空字符串表示不使用缩进格式,第三个参数为每个节点的缩进字符(这里使用4个空格)。最终输出的XML数据如下:
```xml
<UserInfo>
<name>Alice</name>
<age>25</age>
<height>1.68</height>
<items>
<item>apple</item>
<item>banana</item>
<item>123</item>
</items>
</UserInfo>
```
可以看到,`List`元素被包裹在了`items`父标签中。
阅读全文