我想做什么:
我有什么:
具体问题,详细说明我的问题:
我希望我能够清楚地陈述我的问题,如果有人至少能指出正确的方向,我将非常感激。
非常感谢。
更新:发布后我发现libxml2实际上从2.5.0版本开始提供xmlTextReader,这部分解决了我的问题 - 但只是部分解决,因为我仍然不知道如何将它与顺序bz2结合起来文件阅读(当然还有完全不同的解决方案)。
更新2:解决方案必须在永久运行的进程中工作,并且应该(如第2点所述)内存+ cpu效率,所以除了其他任何东西之外,数据不应该被复制数十次(在内存中或在磁盘)。
答案 0 :(得分:2)
你没有在程序中进行bzip2解压缩,只需从stdin读取未压缩的xml并用libxml2(或等价)解析它。然后就这样打电话给你的程序,享受unix管道的优点:
bzip2 -d < planet.osm.bzip2 | yourtool