From 93e41ab787afb2ff138ee88123cb52b5806368bd Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 20 Sep 2006 01:12:06 +0000 Subject: [PATCH] entityizing the xml that comes from the z server to prevent libxml parser errors git-svn-id: svn://svn.open-ils.org/ILS/trunk@6146 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Search/Z3950.pm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm b/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm index 26aaeaa379..c8efb75a7e 100755 --- a/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm @@ -1,4 +1,3 @@ -#!/usr/bin/perl package OpenILS::Application::Search::Z3950; use strict; use warnings; use base qw/OpenSRF::Application/; @@ -229,6 +228,8 @@ sub process_results { my $err; my $mods; + my $marc; + my $marcs; my $marcxml; $logger->info("z3950: fetching record $_"); @@ -236,8 +237,9 @@ sub process_results { try { my $rec = $results->record($_); - my $marc = MARC::Record->new_from_usmarc($rec->rawdata()); - my $doc = XML::LibXML->new->parse_string($marc->as_xml_record); + $marc = MARC::Record->new_from_usmarc($rec->rawdata()); + $marcs = entityize($marc->as_xml_record); + my $doc = XML::LibXML->new->parse_string($marcs); $marcxml = entityize( $doc->documentElement->toString ); my $u = OpenILS::Utils::ModsParser->new(); @@ -249,6 +251,10 @@ sub process_results { push @records, { 'mvr' => $mods, 'marcxml' => $marcxml } unless $err; $logger->error("z3950: bad XML : $err") if $err; + + if( $err ) { + warn "\n\n$marcs\n\n"; + } } $res->{records} = \@records; -- 2.43.2