使用XML包

时间:2016-07-22 12:34:12

标签: r xml parsing openstreetmap large-files

上下文
我目前正在开发一个涉及osm数据的项目(Open Street Map)。为了操纵地理对象,我必须将数据(osm xml文件)转换为对象。 osmar包允许我这样做,但它无法解析原始xml数据。

错误

  

粘贴错误(file,collapse =“\ n”):结果将超过2 ^ 31-1个字节

代码

require(osmar)
osmar_obj <- get_osm("anything", source = osmsource_file("my filename"))

在get_osm函数中,代码调用ret <- xmlParse(raw),这会在几秒钟后触发错误。

问题
我怎么能读取一个大的XML文件(这里是10GB),知道我有64G的内存?

  

非常感谢!

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案,即使它不是100%令人满意。

  1. 通过删除shell中的每个换行符(但最后一个)来转换.osm文件
  2. 运行与以前完全相同的代码,跳过不再需要的粘贴(因为你刚刚在shell中执行了相同的操作)
  3. 利润:)

    显然,我对此并不满意,因为在shell中修改数据文件更像是一种实际解决方案:(