X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmetadata%2Fdc%2Ffill_db.pl;fp=helm%2Fmetadata%2Fdc%2Ffill_db.pl;h=fed21ee5ac815c74cd49db1019ab2c6d3c7ba0b8;hb=407c75f92f1a641dc49243209cd246f6affd924d;hp=0000000000000000000000000000000000000000;hpb=f9c4a1158888982406aca8960b6d50cdce677507;p=helm.git diff --git a/helm/metadata/dc/fill_db.pl b/helm/metadata/dc/fill_db.pl new file mode 100755 index 000000000..fed21ee5a --- /dev/null +++ b/helm/metadata/dc/fill_db.pl @@ -0,0 +1,53 @@ +#!/usr/bin/perl -w +use strict; + +use XML::Parser; + +my $skipped = 0; +my $open = 0; +my $content = ""; +my $uri = ""; + +sub handle_start($$@) { + my ($expat, $element, @attrs) = @_; + if ($skipped == 1) { + $uri = $attrs[1]; + $uri =~ s/'/''/g; + } + if ($skipped < 2) { $skipped++ ; } + else { + $open++; + $content = ""; + } +} + +sub handle_end($$) { + my ($expat,$element) = @_; + $open--; + if ($open >= 0) { + $content =~ s/'/''/g; + $element =~ s/(\w+):(\w+)/$1$2/; + my $query = "INSERT INTO $element VALUES ('$content','$uri');"; + print $query, "\n"; + } +} + +sub handle_char($$) { + my ($expat,$char) = @_; + if ($open >= 1) { + chomp($char); + $char =~ s/ +/ /g; + $char =~ s/^ //g; + $char =~ s/ $//g; + $content .= $char; + } +} + +my $p = new XML::Parser( + Handlers => + { Start => \&handle_start, + End => \&handle_end, + Char => \&handle_char}); + +$p->parsefile($ARGV[0]); +