什么是Perl最好的XML解析器?

时间:2009-01-28 10:48:29

标签: xml perl libxml2

我尝试过很多Perl XML Parsers。我对Sablotron Parser很感兴趣,但安装在Windows机箱上真是太痛苦了。目前我已经开始使用XML::LibXMLXML::LibXSLT两者似乎都做了我需要的一切。

它们似乎也很标准。是否有比这更好的XML解析器?

8 个答案:

答案 0 :(得分:24)

我认为你使用的非常好。 XML::LibXML,Matt Sergeant和Christian Glahn与Daniel Velliard的libxml2的Perl界面是我所知道的更快的XML解析器之一。

答案 1 :(得分:12)

正如人们所说,这实际上取决于你的需求。为了解析大小约为100Mb的XML文件(来自TAIR的基因注释,每个染色体1个文件),我使用了mirod的XML::Twig模块,它允许你设置回调来解析你感兴趣的元素,呈现每个子文档都是XML :: Simple树。它结合了SAX解析器(将文件作为流扫描)与DOM解析器(使用有趣的部分更轻松地工作)的好处。

答案 2 :(得分:10)

如果您需要速度,功能或功能,XML :: LibXML就是您的选择。但是,如果你的易用性,XML::Simple是一个可行的选择。

答案 3 :(得分:5)

根据我的经验XML::Simple最适合快速和脏的XML解析。我们使用它来解析来自第三方的数据,这些数据并不总是符合XML标准。 XML :: Simple会引发信息性错误,并使您非常快速地运行。

答案 4 :(得分:4)

(实际上这不是答案,而是评论 - 但是,我无法发表评论......)

这里提到了XML :: Simple。
(我知道几年前它很少,但今天出现在谷歌......)

然而,它的网站(http://metacpan.org/pod/XML::Simple)现在说:

本模块的状态

不鼓励在新代码中使用此模块。其他模块可用,提供更直接和一致的接口。特别强烈建议使用XML :: LibXML。

此模块的主要问题是大量选项以及这些选项交互的任意方式 - 通常会产生意外结果。

欢迎使用包含错误修复和文档修补程序的修补程序,但不太可能添加新功能。

答案 5 :(得分:2)

您还可以查看下面使用LibXML的XML::Liberal

答案 6 :(得分:1)

我认为你也应该试试XML::MyXML。这很容易使用。

答案 7 :(得分:0)

我会提供一个不应该使用的人:XML::Parser

它会自动将HTML实体扩展为其等效的UTF-8,并且禁用此行为的选项不适用于所有实体DataFrames的最大特征。

此外,它的XMLDecl-parser会将&amp;块中的standalone属性解释并显示为<?xml ... ?>,这绝对不正确 - 它应该是"standalone"="1"