如何将混合元素的xml序列映射到go结构?
发布时间:2020-12-16 05:34:35 所属栏目:百科 来源:网络整理
导读:我试图加载一个包含无限混合元素序列的 XML文件(在XSD中的序列中选择) 该文件看起来像这样: RootNode ElementB.../ElementB ElementA.../ElementA ElementA.../ElementA ElementC.../ElementC ElementB.../ElementB ElementA.../ElementA ElementB.../Eleme
我试图加载一个包含无限混合元素序列的
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. 游乐场示例:http://play.golang.org/p/Vl9YI8GG1E (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |