my $marc = MARC->new;
my $ENCODING = 'ISO-8859-2';
+$ENCODING = 'windows-1250';
my $twig=XML::Twig->new(
twig_roots => { 'mods' => \&mods },
}
marc_rep($m_cache,'215');
- marc_add_single($m_cache,'001',undef,$ref->{recordInfo}->{recordIdentifier});
+ my $mfn = $ref->{recordInfo}->{recordIdentifier};
+ $mfn =~ s/[^0-9]//g;
+ marc_add_single($m_cache,'001',undef,$mfn);
marc_add($m_cache,'200','a',$ref->{titleInfo}->{title});
marc_add($m_cache,'200','e',$ref->{titleInfo}->{subTitle});
if ($related eq "series") {
marc_add_rep($m_cache,'225','a',$ri->{titleInfo}->{title});
foreach my $pn (@{$ri->{titleInfo}->{partNumber}}) {
- marc_add_rep($m_cache,'999','a',$pn);
+ if ($journal) {
+ marc_add_rep($m_cache,'999','a',$pn);
+ } else {
+ marc_add_rep($m_cache,'225','v',$pn);
+ }
}
} elsif ($related eq "preceding") {
- marc_add_rep($m_cache,'430','a',$ri->{titleInfo}->{title});
+ marc_add($m_cache,'520','a',$ri->{titleInfo}->{title});
+ if ($ri->{identifier}) {
+ if ($ri->{identifier}->{type} eq "issn") {
+ marc_add($m_cache,'520','x',$ri->{identifier}->{content});
+ } else {
+ die "can't store identifier type $type";
+ }
+ }
+ marc_rep($m_cache,'520');
} else {
die "can't parse related item type $related" if ($related);
}