X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=Equinox-Migration%2Flib%2FEquinox%2FMigration%2FMARCXMLSampler.pm;h=e4243e694a1458d3df704eb96c3cad9a87b46411;hp=3ec869f00d3483ed672081d6d52a9334e021ca94;hb=5cb143f1fc584a55e4732dbc747c875367baa241;hpb=967912046d1cdd6ffc0fc9ec76127d24e1a7b98d diff --git a/Equinox-Migration/lib/Equinox/Migration/MARCXMLSampler.pm b/Equinox-Migration/lib/Equinox/Migration/MARCXMLSampler.pm index 3ec869f..e4243e6 100644 --- a/Equinox-Migration/lib/Equinox/Migration/MARCXMLSampler.pm +++ b/Equinox-Migration/lib/Equinox/Migration/MARCXMLSampler.pm @@ -72,9 +72,7 @@ sub new { die "Argument 'marcfile' must be specified\n" unless ($args{marcfile}); if (-r $args{marcfile}) { $self->{twig} = XML::Twig->new; - $self->{twig}->parsefile($args{marcfile}); - my @records = $self->{twig}->root->children; - $self->{data}{recs} = \@records; + $self->{conf}{marc} = $args{marcfile}; } else { die "Can't open marc file: $!\n"; } @@ -100,10 +98,11 @@ Extracts data from MARC records, per the mapping file. sub parse_records { my ($self) = @_; - for my $record ( @{$self->{data}{recs}} ) { + $self->{twig}->parsefile( $self->{conf}{marc} ); + for my $record ( $self->{twig}->root->children ) { my @fields = $record->children; for my $f (@fields) - { $self->process_field($f) } + { $self->process_field($f); $f->purge } # cleanup memory and increment pointer $record->purge; @@ -124,7 +123,7 @@ sub process_field { if ($map and $map->has($tag)) { my @subs = $field->children('subfield'); for my $sub (@subs) - { $self->process_subs($tag, $sub) } + { $self->process_subs($tag, $sub); $sub->purge } } }