我正在尝试解析多个 xml 文件,但我有点卡住了。下面的脚本部分$twig->parsefile("output_1.xml");
可以很好地解析所述文件。但是,我想解析目录中的所有 .xml 文件。我尝试将每个文件写入代码中,如下所示:
$twig->parsefile("output_1.xml" "output_2.xml" "output_3.xml");
我也尝试过使用通配符,就像在 bash 中一样:
$twig->parsefile("*.xml");
但这些尝试都不起作用。如何更改脚本以便脚本解析目录中的所有 .xml 文件?我为我缺乏知识而道歉,我才刚刚开始使用 Perl。
#!/bin/perl -w
use strict;
use XML::Twig;
my $twig = XML::Twig->new(
twig_handlers => {item => \&acct}
);
$twig->parsefile("output_1.xml");
sub acct {
my ($t, $elt) = @_;
for my $tag (qw(itemId title viewItemURL convertedCurrentPrice)) {
print $elt->field($tag), "\n";
}
print "\n";
print "\n";
}
答案1
您可以按如下方式枚举目录内容:
my @files = <*.xml>; # or: my @files = </your/path/to/*.xml>;
foreach my $file (@files) {
$twig->parsefile($file);
}