对于大于15 GB的文件,您可以选择哪种Perl XML Parsers?

Rac*_*hel 4 xml perl parsing

我知道有一些非常好的Perl XML解析器,如XML :: Xerces,XML :: Parser :: Expat,XML :: Simple,XML :: RapidXML,XML :: LibXML,XML :: Liberal等.

您会选择哪种XML解析器来解析大型文件,以及您将选择哪种参数而不是另一种?如果您要选择的那个不在列表中,请建议.

Bev*_*van 14

如果要解析该大小的文件,则需要避免尝试将整个文档加载到内存中并构造DOM(域对象模型)的任何解析器.

相反,寻找一个SAX样式解析器 - 将输入文件视为流,在遇到事件和属性时引发事件.这种方法允许您逐步处理文件,而无需一次将整个内容保存在内存中.

  • 同意 - 我个人最喜欢的是XML :: Twig.我用XML :: Twig处理了XML流,即.理论上无限GB :) (2认同)

Sin*_*nür 9

对于15 GB的文件,您的解析器必须基于SAX,因为具有这样的文件大小,只是能够处理数据是您的首要任务.

我建议你阅读XML :: SAX :: Intro.

  • 这可能是真的,但仅仅因为解析必须仅使用完整的文件,并不意味着流解析是不可能的.即使整个文档位于硬盘驱动器上,使用带有非常大的文件的流式解析器仍然是个好主意. (8认同)

run*_*rig 5

SAX解析器是一种选择.其他不涉及将整个doc加载到内存中的选项是XML :: TwigXML :: Rules.