查询 XML 文件的最简单方法?

查询 XML 文件的最简单方法?

设想:

我在一台 AIX 机器上 - 实际上有十几台。我有一个应用程序将信息输出到 XML 文件,不幸的是没有换行符。我需要运行可以对这些文件进行查询的脚本。这很简单:如果它们是普通的日志文件,grep 和 cut 就可以了。然而,我只能使用我所拥有的。

我很少使用 XML,而且这些是生产 AIX 机器,所以我无法安装随机软件来查看是否能正常工作。这些机器上有 Perl,通过 @INC 查找 XML 会显示以下内容(已删节):

XML/LibXML
XML/Parser
XML/Simple
XML/SAX

使用其中一种方式是否是完成我需要做的事情的正确方法?

答案1

我建议XML::简单. 非常容易拿起并且已经安装好。

答案2

扩大 Maris(t?) 的答案,XML::简单绝对是我最好的朋友。它非常简单,并且非常适合静态 XML 文件。

XML::Simple 不适用于 XML 流,也不适用于巨大的(我们这里说的是数兆字节)XML 文件,但对于配置文件和资源文件,XML::Simple 效果很好。

我就不多说细节了,因为我的链接(mclean.net.nz)应该是使用方面的一个很好的入门指南,而 maris(t?) 的 CPAN 链接将非常有助于您深入了解它的细节。如何根据自己的行为调整它,以及您可以用它做什么。

对于我经常看到的困扰新用户的事情,这里有两个快速提示;
实例化处理程序时,添加 KeyAttr => 0 选项。我不明白哪个有理智的人会希望从这个开始。以后,当你理解它时?当然,你会使用它。在那之前?毫无价值。

无论如何,第二个提示:
当一个节点可以有 0、1 或多个记录时,ForceArray 是您最好的朋友。它可以让您免于使用令人讨厌的变通方法,例如检查 XML 节点的大小并以两种不同的方式对其执行操作,或者完全跳过它。将该键放在 ForceArray 上,使用 for/foreach 循环,然后调用它完成。

答案3

相关内容