尝试解析perl中存储在数组中的xml时出错

时间:2012-06-25 18:32:17

标签: perl

我有一个以下程序,但由于某种原因它抛出错误而不解析xml文件。

 my @findxmls;
 foreach my $searchxml(keys %xmlhash) {
 @findxmls= `find -name $findxml -maxdepth 4`;
 print Dumper (@findxmls);

到目前为止工作正常。它打印出带有路径的所有xml文件。

 example of output
  y:\dir\subdir\procedure.xml
  y:\dir\otherdir\java.xml

但是如果我尝试解析它就不起作用

  foreach my $output (@findxmls) {                          
  my $parsexml = new XML::Simple;
      my $xmldata = $parser->XMLin($output );
  print Dumper ($xmldata);  
  } 

ERROR

File does not exist: y:/dir/subdir/procedure.xml at sample.pl line 20

1 个答案:

答案 0 :(得分:2)

反引号在输出中包含换行符(\n),因此@findxmls数组的内容都有换行符。将脚本更改为

chomp( @findxmls= `find -name $findxml -maxdepth 4` );

foreach my $output (@findxmls) {   
    chomp( $output );
    ...
}