gpt4 book ai didi

go - 与上下文无关的 XML 结构标记

转载 作者:IT王子 更新时间:2023-10-29 01:46:08 24 4
gpt4 key购买 nike

我希望能够标记我的结构,而无需知道它将嵌套到 XML 文档中的级别。换句话说,我希望能够写:

type Elem struct {
Datum string `xml:"datum"`
}

让它对双方都有效

<elem>
<datum>Hello</datum>
</elem>

<list>
<elem>
<datum>Hello</datum>
</elem>
</list>

但是,为了使后一个示例起作用(当尝试解码为 []Elem 时),我需要使用标记 xml:"elem>datum",第一个示例的解码不正确。有没有办法让我在不知道结构将如何嵌入的情况下定义 XML 标记?在这里查看一个简单的例子:

http://play.golang.org/p/LpI2vKFpNE

最佳答案

解决这个问题的一种方法是使用匿名结构:

func Test2_DecodeList() {
xmlData := "<list><elem><datum>Hello</datum></elem></list>"
var list struct {
Elems []Elem `xml:"elem"`
}
if err := xml.Unmarshal([]byte(xmlData), &list); err != nil {
fatal("Test2:", err)
}

if err := expectEq(1, len(list.Elems)); err != nil {
fatal("Test2:", err)
}

if err := expectEq("Hello", list.Elems[0].Datum); err != nil {
fatal("Test2:", err)
}
}

示例:http://play.golang.org/p/UyYoyGgL_K

关于go - 与上下文无关的 XML 结构标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498690/

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