Perl

Perl 程式碼引用多個具有相同副檔名的文件 (.xml)

  • April 21, 2016

我正在嘗試解析多個 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";
                           }

您可以按如下方式列舉目錄內容:

my @files = <*.xml>;    # or: my @files = </your/path/to/*.xml>;
foreach my $file (@files) {
   $twig->parsefile($file);
}

引用自:https://unix.stackexchange.com/questions/278183