From d279b72e4e1af82605815866f0f52a40328531bf Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Mon, 25 Sep 2006 12:39:34 +0000 Subject: [PATCH] Add and use xml_encode() Unbelievable. --- lib/ZOOM/IRSpy/Record.pm | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/ZOOM/IRSpy/Record.pm b/lib/ZOOM/IRSpy/Record.pm index 165f62e..081e19d 100644 --- a/lib/ZOOM/IRSpy/Record.pm +++ b/lib/ZOOM/IRSpy/Record.pm @@ -1,4 +1,4 @@ -# $Id: Record.pm,v 1.10 2006-07-25 16:53:28 mike Exp $ +# $Id: Record.pm,v 1.11 2006-09-25 12:39:34 mike Exp $ package ZOOM::IRSpy::Record; @@ -47,18 +47,37 @@ sub _empty_zeerex_record { ### Doesn't recognise SRU/SRW URLs my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target); + my $xhost = xml_encode($host); + my $xport = xml_encode($port); + my $xdb = xml_encode($db); return <<__EOT__; - $host - $port - $db + $xhost + $xport + $xdb __EOT__ } +# I can't -- just can't, can't, can't -- believe that this function +# isn't provided by one of the core XML modules. But the evidence all +# says that it's not: among other things, XML::Generator and +# Template::Plugin both roll their own. So I will do likewise. D'oh! +# +sub xml_encode { + my ($text) = @_; + $text =~ s/&/&/g; + $text =~ s//>/g; + $text =~ s/['']/'/g; + $text =~ s/[""]/"/g; + return $text; +} + + sub append_entry { my $this = shift(); my($xpath, $frag) = @_; -- 1.7.10.4