golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《使用 to 把庞大的 XML 文件转换成 JSON 格式,以便存储在 mongoDB
golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《使用 to 把庞大的 XML 文件转换成 JSON 格式,以便存储在 mongoDB 数据库中》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
对于我的一个项目,我必须处理超过 2GB 的 XML 文件。我想将数据存储在 monGoDB 中。我决定使用 Go 语言尝试一下。但我在找出在 Go 中执行此操作的最佳方法时遇到了一些困难。
我见过很多具有固定 XML 结构的示例,但我获得的数据结构是动态的,因此使用某种预定义的结构对我来说不起作用。
现在我偶然发现了这个包:https://GitHub.com/basgys/goxml2json,它看起来很有前途,但有一些东西我不明白:
我认为这样说很好,我只需将 XML 数据转换为 JSON 形式一次,这样我就可以将其存储在 mongoDB 中。
你们中的一些人对如何使用 Go 将 XML 文件有效解析为 JSON 有一些想法吗?
go 提供了 builtin XML stream parser at encoding/xml.Decoder
。
典型的使用模式是读取令牌,直到找到感兴趣的内容,然后将令牌解组到 xml 标记结构中,然后相应地处理该数据。这样,您只需将单个 xml 令牌所需的内容加载到内存中,或者解组一些有趣的数据。
例如(Go Playground):
d := xml.NewDecoder(xmlStream)
for {
// Decode the next token from the stream...
token, err := d.Token()
if err == io.EOF {
break
}
check(err)
// Switch behavior based on the token type.
switch el := token.(type) {
case xml.StartElement:
// Handle "person" start elements by unmarshaling from XML...
if el.Name.Local == "person" {
var p Person
err := d.DecodeElement(&p, &el)
check(err)
// ...then marshal to JSON...
jsonbytes, err := json.Marshal(p)
check(err)
// ...then take other action (e.g. insert into database).
fmt.Printf("OK: %s\n", string(jsonbytes))
// OK: {"Id":"123","Name":"Alice","Age":30}
}
}
}
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~
--结束END--
本文标题: 使用 to 把庞大的 XML 文件转换成 JSON 格式,以便存储在 MongoDB 数据库中
本文链接: https://lsjlt.com/news/595726.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0