0

我有一个以下程序,但由于某种原因它抛出错误并且不解析 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);  
  } 

错误

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

1 回答 1

2

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

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

或者

foreach my $output (@findxmls) {   
    chomp( $output );
    ...
}
于 2012-06-25T18:36:28.173 回答