perl批处理xml文件

  --这里所有的perl技术问题都是我平常处理数据的时候要用到的,可能不是很强的程序,但是希望能和热爱perl的同志,一起分享...
有很多时候,我们会遇到相同类型xml文件,这个时候需要用到批处理,比如要将xml文件里面的歌曲名和歌手名,还有其他一些信息取出来。下面是一个程序例子:
(可以先用一个软件ABC Amber XML Converter来看看xml文件的层次问题。看到的内容如下:
 
  #!/usr/bin/perl
use File::Find;
use XML::Simple;
use Data::Dumper;
$xml = new XML::Simple;
my $count:=1;
sub print_path
{
 my $file = $_;
 if ( $file =~ //.xml$/ )
 {
  $lpath = $File::Find::name;
  push( @lpath, $lpath );

 }
}
find( /&print_path, "d:/test/" ); #找到d盘下面test目录里面的所有xml文件,包括子目录的
foreach my $path (@lpath)  #循环读取文件名
{
 my $filename = $path;
$data = $xml->XMLin("$filename");
Dumper($data);
open IN,">>d:/1_cooking1.txt";  将数据全部读入1_cooking1.txt
      foreach my $col  (sort keys %{$data->{Productions}->{Production}}) #以数组的形式进行读取
  {
if ($data->{Entities}->{Entity}->{$col}->{subtype} eq artist)
   { print  IN  $data->{Productions}->{Production}->{$col}->{Title}->{value}."|".
  $data->{Entities}->{Entity}->{$col}->{Name}->{value}."|".
  $data->{Productions}->{Production}->{$col}->{AuthoritativeID}."|"."$filename"."/n"  }

  }  #将歌曲和歌手还有ID用 | 合并

$count++;


 }

 close IN;
 这样我们就可以轻松的批处理所以相同类型的 xml文件了,如果类型不同则在条件语句上进行判断了,这个东西,大家自己看情况而定,嘻嘻。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值