| Revision 364 (by dpavlin, 2004/06/16 23:09:02) |
migration script from WebPAC v1.x field format (in format 999a) to
new format, more ISIS like, and used by eval v999^a
|
#!/usr/bin/perl -w
use strict;
foreach my $file (@ARGV) {
open(XML,$file) || die "can't open '$file': $!";
my $xml;
while (<XML>) {
$xml .= $_;
}
close(XML);
my $new_xml;
sub to_v {
my ($f,$sf) = @_;
my $out = "v".$f;
$out .= "^".$sf if ($sf);
return $out;
}
while ($xml =~ s/(^.+?<isis[^>]*>)(.+?)(<\/isis>)//s) {
my ($pre,$data,$post) = ($1,$2,$3);
$data =~ s/(\d{3})([\w\d]?)/to_v($1,$2)/esg;
$data =~ s/v(v\d{3}\^\w)/$1/gs;
$new_xml .= $pre.$data.$post;
}
$new_xml .= $xml;
open(XML,"> $file-new") || die "can't create '$file-new': $!";
print XML $new_xml;
close(XML);
rename "$file-new","$file" || die "can't update original file '$file' with '$file-new': $!";
print "$file converted\n";
}