GnuCash 2.4.99
grab-types.pl
Go to the documentation of this file.
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines