Windows 上有比 XML::LibXML for Perl 更好的 XML 解析器吗?

问题描述 投票:0回答:8

我尝试过许多 Perl XML 解析器。我对 Sablotron Parser 非常感兴趣,但是安装在 Windows 机器上实在是太痛苦了。目前我已经开始使用 XML::LibXMLXML::LibXSLT 两者似乎都能满足我需要的一切。

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

xml windows perl libxml2
8个回答
25
投票

我认为你用的是一个相当不错的。 XML::LibXML,Matt Sergeant 和 Christian Glahn 与 Daniel Velliard 的 libxml2 的 Perl 接口是我所知道的更快的 XML 解析器之一。


12
投票

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


10
投票

如果您需要速度、功能或功能,XML::LibXML 是您的最佳选择。不过,如果您追求易用性,XML::Simple 是一个可行的替代方案。


5
投票

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


5
投票

(其实这不是一个答案,而是一个评论 - 然而,我不能评论......)

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

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

该模块的状态

不鼓励在新代码中使用此模块。其他模块可提供更简单和一致的界面。特别是,强烈推荐 XML::LibXML。

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

欢迎提供错误修复和文档修复的补丁,但不太可能添加新功能。


2
投票

您还可以查看 XML::Liberal,它在下面使用了 LibXML。


1
投票

我认为您也应该尝试一下 XML::MyXML。使用起来非常方便。


0
投票

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

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

&

此外,它的 XMLDecl 解析器会将

standalone
块中的
<?xml ... ?>
属性解释并显示为
"standalone"="1"
,这是绝对不正确的——它应该是
"standalone"="yes"

© www.soinside.com 2019 - 2024. All rights reserved.