|
GnuCash 2.4.99
|
00001 #!/usr/bin/perl -w 00002 ##@file 00003 #@cond Perl 00004 use strict; 00005 00006 my $tag = shift @ARGV; 00007 my $filename = shift @ARGV; 00008 my $file_to_write_to_pattern = shift @ARGV; 00009 my $files_written = ""; 00010 00011 open(XMLFILE, $filename); 00012 00013 sub write_file 00014 { 00015 my $data = shift; 00016 my $num = shift; 00017 00018 my $towriteto = $file_to_write_to_pattern; 00019 $towriteto =~ s/XXX/$num/; 00020 00021 open(TOWRITE, ">$towriteto"); 00022 00023 print TOWRITE $data; 00024 00025 close TOWRITE; 00026 00027 $files_written .= " $towriteto"; 00028 } 00029 00030 my $xml_header = "<?xml version=\"1.0\"?>\n<gnc-v2>\n"; 00031 my $to_write = $xml_header; 00032 my $grabbing = 0; 00033 my $grab_num = 0; 00034 00035 while (<XMLFILE>) { 00036 if ($grabbing) { 00037 $to_write .= $_; 00038 if ($_ =~ m/\<\/$tag\>/) { 00039 $to_write .= "</gnc-v2>\n"; 00040 write_file($to_write, $grab_num); 00041 $to_write = $xml_header; 00042 $grab_num++; 00043 $grabbing = 0; 00044 } 00045 } 00046 elsif ($_ =~ m/\<$tag .*\>/) { 00047 $grabbing = 1; 00048 $to_write .= $_; 00049 } 00050 } 00051 00052 print $files_written 00053 ##@endcond Perl
1.7.4