diff --git a/perl/exit_strategy.pl b/perl/exit_strategy.pl index c901ae8b149bac0aec5070bd36d92e325829d7b9..cd6c5f13e8aa5c7ce98986e0310fc7e203b7df04 100644 --- a/perl/exit_strategy.pl +++ b/perl/exit_strategy.pl @@ -285,12 +285,12 @@ sub check_if_db_conform ($$) { return $title; } - sub get_dcrecords { + sub get_dcrecords_ref { my $xp = shift; my $filename = shift; my @dcrecords; - my $dcnodes = $xp->find($compiled_xpath_dcrecords); - foreach my $dcnode ($dcnodes->get_nodelist) { + my @dcnodes = $xp->findnodes($compiled_xpath_dcrecords); + foreach my $dcnode (@dcnodes) { #my $ref = ref $dcnode; use Data::Printer; p( $ref); my $key = $dcnode->getName(); #my $value = $dcnode->findvalue($compiled_xpath_dot); @@ -305,7 +305,7 @@ sub check_if_db_conform ($$) { push @dcrecords, \@pair; } } - return @dcrecords; + return \@dcrecords; } sub get_repid { @@ -324,14 +324,13 @@ sub check_if_db_conform ($$) { return $repid; } - sub get_files { + sub get_files_ref { my $xp = shift; my $filename = shift; my $repid = shift; - - my $files_nodes = $xp->find("mets:mets/mets:fileSec/mets:fileGrp[\@ADMID='$repid']/mets:file/mets:FLocat/\@xlin:href"); - my @files = map { $_->nodeValue} $files_nodes->get_nodelist(); - return @files; + my @files_nodes = $xp->findnodes("mets:mets/mets:fileSec/mets:fileGrp[\@ADMID='$repid']/mets:file/mets:FLocat/\@xlin:href"); + my @files = map {s#//#/#g; $_} map { $_->nodeValue } @files_nodes; + return \@files; } sub parse_iexml($$) { @@ -354,7 +353,7 @@ sub check_if_db_conform ($$) { my $title = get_title($xp, $filename); ############################################ # get dc-records - my @dcrecords = get_dcrecords($xp, $filename); + my $dcrecords_ref = get_dcrecords_ref($xp, $filename); ############################################ # get right representation ID (has a dnx-section with <key id=label>LOCAL</key>) my $repid = get_repid($xp, $filename); @@ -367,13 +366,13 @@ sub check_if_db_conform ($$) { } ############################################ # get all files of LOCAL representation - my @files = get_files ($xp, $filename, $repid); + my $files_ref = get_files_ref ($xp, $filename, $repid); my %ret; $ret{"filename" } = $filename; $ret{"title"} = $title; $ret{"repid"} = $repid; - $ret{"files"} = \@files; - $ret{"dcrecords"} = \@dcrecords; + $ret{"files"} = $files_ref; + $ret{"dcrecords"} = $dcrecords_ref; return \%ret; } }