From e70536b158a3da22942b80e45ebf7e8806948fcc Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Tue, 18 Jul 2006 11:09:51 +0000 Subject: [PATCH] Record contains a DOM tree of the ZeeRex record, not the text. Comments on how to use XML::Simple abandoned (it doesn't work). Records with no ZeeRex records are allocated a new vacuous one. --- lib/ZOOM/IRSpy/Record.pm | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) 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 -- 1.7.10.4