gpt4 book ai didi

xml - 如何将混合元素的 xml 序列映射到 go 结构?

转载 作者:IT王子 更新时间:2023-10-29 01:27:38 26 4
gpt4 key购买 nike

正在尝试加载包含无限混合元素序列的 XML 文件(XSD 中的序列选择)该文件看起来像这样:

<RootNode>
<ElementB>...</ElementB>
<ElementA>...</ElementA>
<ElementA>...</ElementA>
<ElementC>...</ElementC>
<ElementB>...</ElementB>
<ElementA>...</ElementA>
<ElementB>...</ElementB>
</RootNode>

我使用 xml.Unmarshal 来初始化和填充这些结构:

type RootNode struct {
ElementA []ElementA
ElementB []ElementB
ElementC []ElementC
}

type ElementA struct {
}

type ElementB struct {
}

type ElementC struct {
}

我这里有工作示例 http://play.golang.org/p/ajIReJS35F .问题是我需要知道原始序列中元素的索引。有了那个描述,这个信息就丢失了。

有没有办法在同一数组中加载 ElementA、ElementB 或 ElementC 类型的元素?更一般地说,将混合元素列表映射到 go 结构的最佳方法是什么?

最佳答案

您可以在根节点上使用 xml:",any" 标记,然后将其余部分解码为具有 XMLName 字段的结构,如下所示:

type RootNode struct {
Elements []Element `xml:",any"`
}

type Element struct {
XMLName xml.Name
}

关于 xml:",any"XMLName 的更多信息 here .

Playground 示例:http://play.golang.org/p/Vl9YI8GG1E

关于xml - 如何将混合元素的 xml 序列映射到 go 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28809738/

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