我已经尝试过许多 Perl XML 解析器。我对 Sablotron Parser 很感兴趣,但是安装在 Windows 机器上实在是太痛苦了。目前我已经开始使用XML::LibXML和XML::LibXSLT两者似乎都能满足我的所有需求。
它们似乎也很标准。还有比这更好的 XML 解析器吗?
我已经尝试过许多 Perl XML 解析器。我对 Sablotron Parser 很感兴趣,但是安装在 Windows 机器上实在是太痛苦了。目前我已经开始使用XML::LibXML和XML::LibXSLT两者似乎都能满足我的所有需求。
它们似乎也很标准。还有比这更好的 XML 解析器吗?
我认为你正在使用一个非常好的。 XML::LibXML、Matt Sergeant 和 Christian Glahn 对 Daniel Velliard 的libxml2的 Perl 接口是我所知道的更快的 XML 解析器之一。
如果您需要速度、功能或特性,XML::LibXML 是您的不二之选。但是,如果您追求易用性,那么XML::Simple是一个可行的替代方案。
根据我的经验, XML::Simple最适合快速和肮脏的 XML 解析。我们使用它来解析来自第三方的数据,这些数据并不总是符合 XML 标准。XML::Simple 会引发信息性错误并让您以极快的速度运行。
(实际上这不是答案,而是评论 - 但是,我无法评论......)
XML::Simple 已在此处提及。
(我知道几年前很少,但今天谷歌出现了......)
但是,它的网站(http://metacpan.org/pod/XML::Simple)现在说:
本模块的状态
不鼓励在新代码中使用此模块。其他模块也可以提供更直接和一致的接口。特别是,强烈推荐使用 XML::LibXML。
这个模块的主要问题是大量的选项以及这些选项交互的任意方式——通常会产生意想不到的结果。
欢迎使用带有错误修复和文档修复的补丁,但不太可能添加新功能。
您还可以查看在下面使用 LibXML的XML::Liberal 。
我认为您也应该尝试一下XML::MyXML。它非常易于使用。
我将提供一个不应该使用的:XML::Parser。
它会自动将 HTML 实体扩展为其 UTF-8 等效项,并且禁用此行为的选项不适用于所有实体中最具特征的&
.
此外,它的 XMLDecl 解析器会将块中的standalone
属性解释并显示为,这是绝对不正确的——它应该是。<?xml ... ?>
"standalone"="1"
"standalone"="yes"