--- trunk/all2xml.pl 2002/11/30 00:36:34 3 +++ trunk/all2xml.pl 2003/01/11 16:44:03 7 @@ -5,14 +5,20 @@ use Getopt::Std; use Data::Dumper; use XML::Simple; -use Text::Unaccent; +use Text::Unaccent 1.02; # 1.01 won't compile on my platform, require Unicode::Map8; my $config=XMLin(undef, forcearray => [ 'isis' ], forcecontent => 1); my %opts; -getopts('d:m:q', \%opts); +# usage: +# -d directory name +# -m multiple directories +# -q quiet +# -s run swish + +getopts('d:m:qs', \%opts); my $db_dir = $opts{d} || "ps"; # FIX @@ -29,6 +35,7 @@ my $row = shift @_; my $xml; + $xml->{db_dir} = [ $db_dir ]; # FIX remove? sub isis_sf { my $row = shift @_; @@ -38,7 +45,9 @@ my $sf = OpenIsis::subfields($row->{$isis_id}->[0]); if (! defined $subfield || length($subfield) == 0) { # subfield list undef, empty or no defined subfields for this record - return $row->{$isis_id}->[0]; + my $all_sf = $row->{$isis_id}->[0]; + $all_sf =~ s/\^./ /g; nuke definirions + return $all_sf; } elsif ($sf->{$subfield}) { return $sf->{$subfield}; } @@ -93,12 +102,14 @@ } #print "--display:$display_data\n--index:$index_data\n"; - $xml->{$field}->{display} .= $isis_map->tou($display_data)->utf8 if ($display_data); - $xml->{$field}->{index} .= unac_string($config->{isis_codepage},$index_data) if ($index_data); + #$xml->{$field."_display"} = $isis_map->tou($display_data)->utf8 if ($display_data); + #$xml->{$field."_index"} = unac_string($config->{isis_codepage},$index_data) if ($index_data); + $xml->{$field."_display" } = [ $isis_map->tou($display_data)->utf8 ] if ($display_data); + $xml->{$field."_index"} = [ unac_string($config->{isis_codepage},$index_data)." jabuka" ] if ($index_data); } if ($xml) { - return XMLout($xml, rootname => 'xml', noattr => 1 ); + return XMLout($xml, rootname => 'xml', keeproot => 0, noattr => 0 ); } else { return; } @@ -166,9 +177,12 @@ } if (my $xml = isis2xml($row)) { - print "Path-Name: $isis_db#".$row->{mfn}."\n"; - print "Content-Length: ".(length($xml)+1)."\n"; - print "Document-Type: XML\n\n$xml\n"; + my $path = $isis_db; + $path =~ s#$config->{isis_data}/*##g; + my $out = "Path-Name: $path#".$row->{mfn}."\n"; + $out .= "Content-Length: ".(length($xml)+1)."\n"; + $out .= "Document-Type: XML\n\n$xml\n"; + print $out; } } }