首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Erlang中将1 GB的XML文件转换为ets和dets

在Erlang中将1 GB的XML文件转换为ets和dets
EN

Stack Overflow用户
提问于 2012-07-29 21:55:20
回答 3查看 827关注 0票数 2

我需要从一个1 GB的XML文件中提取一些数据到使用ets和dets的表中。我搜索了整个网络,也在这里,但我没有找到任何关于如何处理大型XML文件的简单示例。一开始,我只想了解如何在不将整个文件上传到内存的情况下读取文件。

Thnx。

EN

回答 3

Stack Overflow用户

发布于 2012-07-29 22:31:18

你检查过xmerl library了吗

票数 0
EN

Stack Overflow用户

发布于 2012-07-30 15:27:47

对于读取大文件并且不将其完全加载到内存中,您可以使用file:open/2,执行以下操作:

代码语言:javascript
复制
 {ok, FileHandler} = file:open(File, [read, raw, read_ahead]),
 {ok, Line} = file:read_line(FileHandler)

此外,为了使用XML,在Erlang中使用了xmerl,不幸的是,它的文档非常少。

票数 0
EN

Stack Overflow用户

发布于 2012-07-29 22:21:06

我不知道Erlang,但似乎集成C库是可能的。如果您愿意这样做,我建议您看看expat库。我知道它是quickes、轻量级xml解析器库。一个简单的回调机制调用每个xml元素的代码,您可以自己决定是将其保留在内存中还是跳过它。

我知道,这是非常低级的。但不幸的是,对于非常大的数据,这通常是唯一的方法。

这是我在谷歌上找到的东西:http://dudefrommangalore.blogspot.de/2009/04/erlang-xml-parser-comparison.html

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11709793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档