1#!/usr/bin/perl -w
2##@file
3#@cond Perl
4use strict;
5
6my $tag = shift @ARGV;
7my $filename = shift @ARGV;
8my $file_to_write_to_pattern = shift @ARGV;
9my $files_written = "";
10
11open(XMLFILE, $filename);
12
13sub write_file
14{
15  my $data = shift;
16  my $num = shift;
17
18  my $towriteto = $file_to_write_to_pattern;
19  $towriteto =~ s/XXX/$num/;
20
21  open(TOWRITE, ">$towriteto");
22
23  print TOWRITE $data;
24
25  close TOWRITE;
26
27  $files_written .= " $towriteto";
28}
29
30my $xml_header = "<?xml version=\"1.0\"?>\n<gnc-v2>\n";
31my $to_write = $xml_header;
32my $grabbing = 0;
33my $grab_num = 0;
34
35while (<XMLFILE>) {
36  if ($grabbing) {
37    $to_write .= $_;
38    if ($_ =~ m/\<\/$tag\>/) {
39      $to_write .= "</gnc-v2>\n";
40      write_file($to_write, $grab_num);
41      $to_write = $xml_header;
42      $grab_num++;
43      $grabbing = 0;
44    }
45  }
46  elsif ($_ =~ m/\<$tag .*\>/) {
47    $grabbing = 1;
48    $to_write .= $_;
49  }
50}
51
52print $files_written
53##@endcond Perl
54