| Revision 678 (by dpavlin, 2005/02/27 23:07:35) |
Experimental support for dBase .dbf files. Usege like this in all2xml.conf:
[hda]
dbf_file=/data/drustvene/hda/ISO.DBF
type=dbf
dbf_codepage=cp852
dbf_mapping=<<_END_OF_MAP_
ID_BROJ 001
ISBN_BROJ 010
SKUPINA1 200
SKUPINA2 205
SKUPINA4 210
SKUPINA5 215
SKUPINA6 225
SKUPINA7 300
ANOTACIJA 330
PREDMET1 610
PREDMET2 610
PREDMET3 510
UDK 675
REDALICA 700
SIGNATURA 990
_END_OF_MAP_
dbf type will use <isis> tag in import_xml and dbf_codepage will
override codepage specified in import_xml file.
Small code refactoring.
|
#
# hash_sf($row_data,'field'[,'subfield'])
#
# e.g. hash_sf($row,'700','a')
#
sub hash_sf {
my $row = shift @_;
my $field = shift @_;
my $subfield = shift @_;
my $i = shift @_ || 0;
my $out;
if ($row->{$field}->[$i]) {
if (! $subfield) {
# subfield list undef, empty or no defined subfields for this record
my $all_sf = $row->{record}->{$field}->[$i] || confess "can't find field $field:$i",Dumper($row);
$all_sf =~ s/[\^\$]./ /g; # nuke definitions
return $all_sf;
}
my $sf = $row->{$field}->[$i]->{$subfield};
return $sf if ($sf);
}
}
1;