Bug 6799 rebuild_zebra.pl -x produces invalid XML records

This patch allow to handle properly items containing extended characters and
send valid XML records to zebraidx

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
(cherry picked from commit 4ce57a102b)

Signed-off-by: Chris Nighswonger <chris.nighswonger@gmail.com>
This commit is contained in:
Frédéric Demians 2011-08-27 13:32:08 +02:00 committed by Chris Nighswonger
parent 112c436339
commit 4d09e48384
1 changed files with 5 additions and 7 deletions

View File

@ -323,19 +323,17 @@ sub export_marc_records_from_sth {
my @items = GetItemsInfo($record_number);
if (@items){
my $record = MARC::Record->new;
$record->encoding('UTF-8');
my @itemsrecord;
foreach my $item (@items){
my $record = Item2Marc($item, $record_number);
push @itemsrecord, $record->field($itemtag);
}
$record->insert_fields_ordered(@itemsrecord);
my $itemsxml=$record->as_xml_record();
my $searchstring = '<record>\n';
my $index = index($itemsxml, '<record>\n', 0);
$itemsxml = substr($itemsxml, $index + length($searchstring));
$searchstring = '</record>';
$marcxml = substr($marcxml, 0, index($marcxml, $searchstring));
$marcxml .= $itemsxml;
my $itemsxml = $record->as_xml_record();
$marcxml =
substr($marcxml, 0, length($marcxml)-10) .
substr($itemsxml, index($itemsxml, "</leader>\n", 0) + 10);
}
}
if ( $marcxml ) {