我试图加载一个包含无限混合元素序列的
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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。