我有一组的哪个索引大型XML文件(链接到MediaWiki转储文件),并使用这些的indeces对随机存取存储在文件中的单个记录工具。它工作得很好,但我用字符串函数和/或正则表达式“解析”XML,而不是真正的XML解析器,这是一个脆弱的解决方案,应该在将来改变文件的创建方式。大的XML文件随机存取
做一些或大多数XML解析器有办法做这样的事情?
(我有我的C语言编写的,Perl和Python工具版本。解析整个文件转换成某种数据库或将它们映射到内存中没有选项)。
UPDATE
这里是粗略的统计比较:我使用的文件大多每周发布一次,目前的文件大小为1,918,212,991字节。我的索引工具的C版本在我的上网本上花费了几分钟,并且只需为每个发布的新XML文件运行一次。不经常我使用其当前大小为30565654976个字节,并于2010
我想知道为什么在一年之内没有人评论过这个答案。这个用例非常罕见吗?这对你来说有效吗@hippietrail? – fho 2014-02-27 11:33:28
@弗洛里安:我从来没有尝试过。当时我正在使用的编程语言中没有实现/库/胶水,维基百科XML转储文件的格式仍然没有改变,无法与我以前的简单化方法一起使用。但我同意你的看法,在这里似乎没有人提到这样的用例... – hippietrail 2014-02-27 12:48:01
也许这只是选择正确的工具的正确工具的问题。 XML在随机访问*和*大文件的同时并不是很好。 Otoh如果我只有一大堆XML,如果我被要求在这些文件中提供随机访问,我没有多少选择。购买更多内存和使用DOM被考虑,但最终我们在多台计算机上创建了大型文件,购买更多内存只是延迟了这个问题。 – fho 2014-02-27 13:18:25