/[webpac]/trunk/tools/mods2unimarc.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/tools/mods2unimarc.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 329 by dpavlin, Sat May 15 20:54:40 2004 UTC revision 336 by dpavlin, Thu Jun 10 19:20:05 2004 UTC
# Line 53  my $nr = 0; Line 53  my $nr = 0;
53  my $marc = MARC->new;  my $marc = MARC->new;
54    
55  my $ENCODING = 'ISO-8859-2';  my $ENCODING = 'ISO-8859-2';
56    $ENCODING = 'windows-1250';
57    
58  my $twig=XML::Twig->new(  my $twig=XML::Twig->new(
59          twig_roots => { 'mods' => \&mods },          twig_roots => { 'mods' => \&mods },
# Line 244  sub mods { Line 245  sub mods {
245          }          }
246          marc_rep($m_cache,'215');          marc_rep($m_cache,'215');
247    
248          marc_add_single($m_cache,'001',undef,$ref->{recordInfo}->{recordIdentifier});          my $mfn = $ref->{recordInfo}->{recordIdentifier};
249            $mfn =~ s/[^0-9]//g;
250            marc_add_single($m_cache,'001',undef,$mfn);
251    
252          marc_add($m_cache,'200','a',$ref->{titleInfo}->{title});          marc_add($m_cache,'200','a',$ref->{titleInfo}->{title});
253          marc_add($m_cache,'200','e',$ref->{titleInfo}->{subTitle});          marc_add($m_cache,'200','e',$ref->{titleInfo}->{subTitle});
# Line 262  sub mods { Line 265  sub mods {
265                          if ($related eq "series") {                          if ($related eq "series") {
266                                  marc_add_rep($m_cache,'225','a',$ri->{titleInfo}->{title});                                  marc_add_rep($m_cache,'225','a',$ri->{titleInfo}->{title});
267                                  foreach my $pn (@{$ri->{titleInfo}->{partNumber}}) {                                  foreach my $pn (@{$ri->{titleInfo}->{partNumber}}) {
268                                          marc_add_rep($m_cache,'999','a',$pn);                                          if ($journal) {
269                                                    marc_add_rep($m_cache,'999','a',$pn);
270                                            } else {
271                                                    marc_add_rep($m_cache,'225','v',$pn);
272                                            }
273                                  }                                  }
274                          } elsif ($related eq "preceding") {                          } elsif ($related eq "preceding") {
275                                  marc_add_rep($m_cache,'430','a',$ri->{titleInfo}->{title});                                  marc_add($m_cache,'520','a',$ri->{titleInfo}->{title});
276                                    if ($ri->{identifier}) {
277                                            if ($ri->{identifier}->{type} eq "issn") {
278                                                    marc_add($m_cache,'520','x',$ri->{identifier}->{content});
279                                            } else {
280                                                    die "can't store identifier type $type";
281                                            }
282                                    }
283                                    marc_rep($m_cache,'520');
284                          } else {                          } else {
285                                  die "can't parse related item type $related" if ($related);                                  die "can't parse related item type $related" if ($related);
286                          }                          }

Legend:
Removed from v.329  
changed lines
  Added in v.336

  ViewVC Help
Powered by ViewVC 1.1.26