我有一组工具,可以对大型XML文件(MediaWiki dump files)进行索引,并使用这些索引随机访问存储在文件中的单个记录。它运行得非常好,但我是通过字符串函数和/或正则表达式来“解析”XML,而不是使用真正的XML解析器,如果将来文件创建方式发生变化,这种解决方案就会变得脆弱。
一些或大多数XML解析器是否有处理此类事情的方法?
(我有用C、Perl和Python编写的工具版本。将整个文件解析成某种数据库或将其映射到内存中不是选项。)
更新:
以下是粗略的统计数据以供比较:我使用的文件大多每周发布一次左右,当前文件的大小为1,918,212,991字节。我的索引工具的C版本在我的上网本上需要几分钟时间,并且只需针对每个新的XML文件运行一次。更少的情况下,我使用同样的工具在另一个XML文件上,该文件的当前大小为30,565,654,976字节,并在2010年仅更新了8次。
一些或大多数XML解析器是否有处理此类事情的方法?
(我有用C、Perl和Python编写的工具版本。将整个文件解析成某种数据库或将其映射到内存中不是选项。)
更新:
以下是粗略的统计数据以供比较:我使用的文件大多每周发布一次左右,当前文件的大小为1,918,212,991字节。我的索引工具的C版本在我的上网本上需要几分钟时间,并且只需针对每个新的XML文件运行一次。更少的情况下,我使用同样的工具在另一个XML文件上,该文件的当前大小为30,565,654,976字节,并在2010年仅更新了8次。