X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FRecord.pm;h=7659e4ada7e49badcad4db7459ea150c977d5d96;hb=7756fea114005961008fd69527ba5876c814ac51;hp=9141a51575c4154e831e7559884130378e556e1d;hpb=d5c2a768a43e05850dc431cd4787f179627821c6;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Record.pm b/lib/ZOOM/IRSpy/Record.pm index 9141a51..7659e4a 100644 --- a/lib/ZOOM/IRSpy/Record.pm +++ b/lib/ZOOM/IRSpy/Record.pm @@ -1,6 +1,8 @@ -# $Id: Record.pm,v 1.20 2006-11-29 18:17:16 mike Exp $ +# $Id: Record.pm,v 1.24 2007-04-27 14:04:40 mike Exp $ package ZOOM::IRSpy::Record; +### I don't think there's any reason for this to be separate from +# ZOOM::IRSpy::Connection, now that the correspondence is always 1:1 use 5.008; use strict; @@ -32,6 +34,7 @@ sub new { $zeerex = _empty_zeerex_record($target); } + ### Parser should be in the IRSpy object my $parser = new XML::LibXML(); return bless { irspy => $irspy, @@ -45,15 +48,16 @@ sub new { sub _empty_zeerex_record { my($target) = @_; - ### Doesn't recognise SRU/SRW URLs - my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target); + my($protocol, $host, $port, $db) = + ZOOM::IRSpy::_parse_target_string($target); + my $xprotocol = xml_encode($protocol); my $xhost = xml_encode($host); my $xport = xml_encode($port); my $xdb = xml_encode($db); return <<__EOT__; - + $xhost $xport $xdb @@ -98,7 +102,7 @@ sub store_result { my $xml = "_string2cdata($info{$key}) . "\""; + $xml .= " $key=\"" . xml_encode($info{$key}) . "\""; } $xml .= ">" . isodate(time()) . "\n"; @@ -158,21 +162,6 @@ sub _half_decent_appendWellBalancedChunk { } -# Yes, I know that this is already implemented in IRSpy.pm. I suggest that we -# introduce a toolkit package with such subroutines... -# -sub _string2cdata { - my ($this, $buffer) = @_; - $buffer =~ s/&/&/gs; - $buffer =~ s//>/gs; - $buffer =~ s/"/"/gs; - $buffer =~ s/'/'/gs; - - return $buffer; -} - - =head1 SEE ALSO ZOOM::IRSpy