我想知道在我的情况下,哪种 XML 解析器最适合 Perl。我读了很多书并尝试过XML::LibXML
and XML::SAX
。第一个使用了太多内存,第二个对我来说似乎没有那么快(即使在关闭纯 Perl 解析器之后)。
我的需求相当具体。我通过以下方式收到了高达 50MB 的较大响应Net::SSH
图书馆。我想在收到这些数据时将其传递到 XML 库,以便在内存中保留最少量的数据。然后,我需要在某些标签中查找数据并对其执行任何操作,在某些情况下对一堆值求和,在其他情况下只需提取值并将它们写入文件或其他内容。所以我需要一个可以串行工作、快速工作并且使用最少内存的 XML 解析器。我得到的数据最多为 1024 字节,所以我希望能够执行类似的操作$myparser->sendData($mynewData)
然后在打开或关闭新标签时调用函数,类似于XML::SAX
does.
我不一定需要 XPath 或 XSLT。
我建议使用XML::Twig http://search.cpan.org/perldoc?XML::Twig.
该模块使用起来非常方便,并且可以串行读取数据,不占用太多内存。
可能是最显着的特征之一XML::Twig
是它允许在所谓的混合模型中解析 XML:您可以解析整个文档(需要整个文档和大量内存),您可以使用回调来解析小块(允许流式传输,内存消耗小),或者您可以使用这些的任意组合。
这种组合模型被证明是最方便的功能 - 从流中加载小叶子,并且您可以免费有效地访问其所有小分支。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)