gpt4 book ai didi

xml - Go:将不同类型的数组/slice 编码到 XML

转载 作者:IT王子 更新时间:2023-10-29 02:14:50 25 4
gpt4 key购买 nike

我有一个结构

type Response struct {
Verbs []interface{}
}

还有一些其他的动词结构,比如

type Verb1 struct{
Field1 string
...
}

type Verb2 struct{
Field2 int
...
}

如何从对象

&Response{Verbs: []interface{}{Verb1{}, Verb2{}, Verb1{}}}

像 XML 一样

<Response><Verb1>...</Verb1><Verb2>...</Verb2><Verb1>...</Verb1></Response>

?

我尝试使用 encoding/xml但它生成元素 Verbs太喜欢了

<Response><Verbs><Verb1>...</Verb1><Verb2>...</Verb2><Verb1>...</Verb1></Verbs></Response>

如何避免生成 <Verbs>

最佳答案

您需要明确命名 Verb 类型。

package main

import (
"encoding/xml"
"fmt"
)

type Root struct {
Container []interface{}
}

type A struct {
XMLName xml.Name `xml:"A"`
Value string `xml:",chardata"`
}

type B struct {
XMLName xml.Name `xml:"B"`
Value string `xml:",chardata"`
}

func main() {
r := Root{
Container: []interface{}{
A{Value: "a"},
B{Value: "b"},
},
}
text, _ := xml.Marshal(r)
fmt.Println(string(text))
}

Playground

关于xml - Go:将不同类型的数组/slice 编码到 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com