/[webpac]/trunk2/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 /trunk2/tools/mods2unimarc.pl

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

trunk/tools/mods2unimarc.pl revision 328 by dpavlin, Sat May 15 19:52:01 2004 UTC trunk2/tools/mods2unimarc.pl revision 337 by dpavlin, Thu Jun 10 19:22:40 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 231  sub mods { Line 232  sub mods {
232                          if ($t =~ m/([^:]+):\s+(.+)$/) {                          if ($t =~ m/([^:]+):\s+(.+)$/) {
233                                  $tmp->{$1} = $2;                                  $tmp->{$1} = $2;
234                          } else {                          } else {
235                                  die "can't parse $t";                                  print STDERR "can't parse '$t' in ",Dumper($phy_desc);
236                          }                          }
237                  }                  }
238                  my $data = $tmp->{pagin};                  my $data = $tmp->{pagin};
# 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                          }                          }
# Line 274  sub mods { Line 289  sub mods {
289    
290          marc_add_single($m_cache,'205','a',$ref->{originInfo}->{edition});          marc_add_single($m_cache,'205','a',$ref->{originInfo}->{edition});
291    
292            marc_add($m_cache,'210','a',$ref->{originInfo}->{place});
293    
294          my $publisher = $ref->{originInfo}->{publisher};          my $publisher = $ref->{originInfo}->{publisher};
295          if ($publisher =~ m,^(.+?)\s*/\s*(.+)$,) {          if ($publisher =~ m,^(.+?)\s*/\s*(.+)$,) {
296                  marc_add($m_cache,'210','a', $2);                  marc_add($m_cache,'210','a', $2);
# Line 282  sub mods { Line 299  sub mods {
299                  marc_add($m_cache,'210','c', $publisher);                  marc_add($m_cache,'210','c', $publisher);
300          }          }
301    
         marc_add($m_cache,'210','a',$ref->{originInfo}->{place});  
302          marc_add($m_cache,'210','d',$ref->{originInfo}->{dateIssued});          marc_add($m_cache,'210','d',$ref->{originInfo}->{dateIssued});
303    
304          marc_single($m_cache,'210');          marc_single($m_cache,'210');

Legend:
Removed from v.328  
changed lines
  Added in v.337

  ViewVC Help
Powered by ViewVC 1.1.26