X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FRecord.pm;h=4fe751b5a419dd6a1e6dc9fe18bc2801a92a9802;hb=e70536b158a3da22942b80e45ebf7e8806948fcc;hp=5b7a4d0354d236b3ee4d105671d0ac9321ae3d04;hpb=6a70b9775b3f2397c03febba098e07b95fd62c14;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Record.pm b/lib/ZOOM/IRSpy/Record.pm index 5b7a4d0..4fe751b 100644 --- a/lib/ZOOM/IRSpy/Record.pm +++ b/lib/ZOOM/IRSpy/Record.pm @@ -1,4 +1,4 @@ -# $Id: Record.pm,v 1.3 2006-07-11 16:14:47 mike Exp $ +# $Id: Record.pm,v 1.4 2006-07-18 11:09:51 mike Exp $ package ZOOM::IRSpy::Record; @@ -6,6 +6,9 @@ use 5.008; use strict; use warnings; +use XML::LibXML; + + =head1 NAME ZOOM::IRSpy::Record - record describing a target for IRSpy @@ -24,18 +27,34 @@ sub new { my $class = shift(); my($target, $zeerex) = @_; - ### Should compile the ZeeRex record into something useful. + if (!defined $zeerex) { + $zeerex = _empty_zeerex_record($target); + } + + my $parser = new XML::LibXML(); return bless { target => $target, - zeerex => $zeerex, # Do we actually need this for anything? + zeerex => $parser->parse_string($zeerex), }, $class; } -#use XML::Simple qw(:strict); -#my %attr = (KeyAttr => [], KeepRoot => 1); -#my $config = XMLin("foo.xml", %attr, ForceArray => 1, ForceContent => 1); -#print XMLout($config, %attr); +sub _empty_zeerex_record { + my($target) = @_; + + ### Doesn't recognise SRU/SRW URLs + my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target); + + return <<__EOT__; + + + $host + $port + $db + + +__EOT__ +} =head1 SEE ALSO