projects
/
Biblio-Z3950.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix indicators, skip fields >= 900
[Biblio-Z3950.git]
/
AlephTR.pm
diff --git
a/AlephTR.pm
b/AlephTR.pm
index
16f4dfa
..
611cd44
100644
(file)
--- a/
AlephTR.pm
+++ b/
AlephTR.pm
@@
-133,6
+133,9
@@
warn "parse $nr";
sub field {
my ( $f, $v ) = @_;
sub field {
my ( $f, $v ) = @_;
+
+ return if $f >= 900; # skip local fields
+
$v =~ s/\Q \E/ /gs;
$v =~ s/\s+$//gs;
warn "## $f\t[$v]\n";
$v =~ s/\Q \E/ /gs;
$v =~ s/\s+$//gs;
warn "## $f\t[$v]\n";
@@
-155,12
+158,17
@@
warn "## ++ ", dump( $f, $v );
}
my ($i1,$i2) = (' ',' ');
}
my ($i1,$i2) = (' ',' ');
- ($i1,$i2) = ($2,$3
|| ' '
) if $f =~ s/^(...)(.)(.)?/$1/;
+ ($i1,$i2) = ($2,$3) if $f =~ s/^(...)(.)(.)?/$1/;
my @sf = split(/\|/, $v);
@sf = map { s/^(\w)\s+//; { $1 => $_ } } @sf;
#warn "## sf = ", dump(@sf);
my @sf = split(/\|/, $v);
@sf = map { s/^(\w)\s+//; { $1 => $_ } } @sf;
#warn "## sf = ", dump(@sf);
- $marc->add_fields( $f, $i1, $i2, @sf );
+ $i1 ||= ' ';
+ $i2 ||= ' ';
+ eval {
+ $marc->add_fields( $f, $i1, $i2, @sf );
warn "## ++ ", dump( $f, $i1, $i2, @sf );
warn "## ++ ", dump( $f, $i1, $i2, @sf );
+ };
+ warn "SKIP: $@" if $@;
}
$html =~ s|<tr>\s*?<td[^>]*class=td1[^>]*>(.+?)</td>\s*?<td class=td1>(.+?)</td>\s*</tr>|field($1,$2)|ges;
}
$html =~ s|<tr>\s*?<td[^>]*class=td1[^>]*>(.+?)</td>\s*?<td class=td1>(.+?)</td>\s*</tr>|field($1,$2)|ges;