]> matita.cs.unibo.it Git - helm.git/blob - helm/metadata/dc_mowgli/upload.pl
Initial revision
[helm.git] / helm / metadata / dc_mowgli / upload.pl
1 #!/usr/bin/perl
2
3 use XML::Parser;
4
5 $p = new XML::Parser(Handlers => {Start => \&handle_start,
6                                   End   => \&handle_end,
7                                   Char  => \&handle_char});
8 $p->parsefile($ARGV[0]);
9
10
11 $skipped = 0;
12 $open = 0;
13 $content = "";
14 $uri = "";
15
16 sub handle_start
17 {
18    my ($expat, $element, @attrs) = @_;
19    if ($skipped == 1) {
20       $uri = $attrs[1];
21       $uri =~ s/'/\\'/g;
22    }
23    if ($skipped < 2) { $skipped++ ; }
24    else {
25       $open++;
26       $content = "";
27    }
28 }
29
30 sub handle_end
31 {
32    my ($expat,$element) = @_;
33    $open--;
34    if ($open >= 0) {
35       $content =~ s/'/\\'/g;
36       $element =~ s/://g;    # dc:pippo ==> dcpippo
37       print "insert into $element values ('$content','$uri');\n";
38    }
39 }
40
41 sub handle_char
42 {
43    my ($expat,$char) = @_;
44    if ($open >= 1) {
45       chomp($char);
46       $char =~ s/ +/ /g;
47       $char =~ s/^ //g;
48       $char =~ s/ $//g;
49       $content .= $char;
50    }
51 }