将XML解组映射到地图
问题描述:
正如标题所述,我试图将我的XML直接解组映射到映射中,而不必先解组成一个结构,然后将结构转换为映射。我正在处理一个相当大的数据集,双重转换需要的时间比预期的要多。将XML解组映射到地图
如果任何人都可以提供任何指导,这将不胜感激。
XML:classAccesses重复,还有一些其他元素。
<classAccesses>
<apexClass>AccountRelationUtility</apexClass>
<enabled>true</enabled>
</classAccesses>
我现在的结构:我分析出每个头元素的第一,然后创建一个与孩子新的结构elemtnts
type classAccesses struct {
ApexClass string `xml:"apexClass"`
Enabled string `xml:"enabled"`
}
type diffs struct {
ClassAccesses []classAccesses `xml:"classAccesses"`
}
所需的地图:我想保持的diff结构,但我希望子结构“ClassAccesses”变得类似于下面的地图。
map[string]string {
"ApexClass": "enabled"
}
答
从Go 1.3开始,不可能使用标准Go库将XML文档直接解组映射到映射中。
标准库的XML部分在这里给出,http://golang.org/pkg/encoding/xml/,没有功能可以完全满足您在问题中所要求的功能。
根据你的情况的细节,你可以有其他选择,如:
- Parallelise你的算法,即从文件和解码在同一时间读取。如果你有多个文件需要读取,这将只会工作得很好。
- 在Go中编写您自己的XML解码算法。
+0
这真的很不幸...猜猜我只需要将两个文件的算法并行化。目标是比较两个文件并列出差异。 – acher 2014-11-04 17:21:44
显示XML寻求帮助。 – Volker 2014-11-03 23:03:53
对于迟到的回复,我添加了XML以及一些额外的详细信息,内容正是我所追求的。 – acher 2014-11-04 15:16:57
看到[this](https://*.com/questions/23066758/how-can-i-write-an-array-of-maps-golang#23066950)回答,也许它可以帮助你转换unmarshalled数组映射(在你从xml_解组之后)。 – 2017-05-22 18:42:17