From: Mike Taylor Date: Mon, 30 Oct 2006 16:13:49 +0000 (+0000) Subject: Move xml_encode() from IRSpy to Utils X-Git-Tag: CPAN-v1.02~870 X-Git-Url: http://sru.miketaylor.org.uk/cgi-bin?a=commitdiff_plain;h=31a4a85969b4d333003c6616ea72574f025aae88;p=irspy-moved-to-github.git Move xml_encode() from IRSpy to Utils --- diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index 758b5bf..d606b6a 100644 --- a/lib/ZOOM/IRSpy.pm +++ b/lib/ZOOM/IRSpy.pm @@ -1,4 +1,4 @@ -# $Id: IRSpy.pm,v 1.44 2006-10-30 15:04:33 mike Exp $ +# $Id: IRSpy.pm,v 1.45 2006-10-30 16:13:49 mike Exp $ package ZOOM::IRSpy; @@ -6,9 +6,6 @@ use 5.008; use strict; use warnings; -use Exporter 'import'; -our @EXPORT_OK = qw(xml_encode irspy_xpath_context); - use Data::Dumper; # For debugging only use File::Basename; use XML::LibXSLT; @@ -550,38 +547,6 @@ sub _next_sibling_test { } -# Utility functions follow, exported for use of web UI - -# 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 irspy_xpath_context { - my($zoom_record) = @_; - - my $xml = $zoom_record->render(); - my $parser = new XML::LibXML(); - my $doc = $parser->parse_string($xml); - my $root = $doc->getDocumentElement(); - my $xc = XML::LibXML::XPathContext->new($root); - $xc->registerNs(e => 'http://explain.z3950.org/dtd/2.0/'); - $xc->registerNs(i => $irspy_ns); - return $xc; -} - - =head1 SEE ALSO ZOOM::IRSpy::Record, diff --git a/lib/ZOOM/IRSpy/Record.pm b/lib/ZOOM/IRSpy/Record.pm index 38641ee..a7c8bc6 100644 --- a/lib/ZOOM/IRSpy/Record.pm +++ b/lib/ZOOM/IRSpy/Record.pm @@ -1,4 +1,4 @@ -# $Id: Record.pm,v 1.17 2006-10-23 12:22:52 sondberg Exp $ +# $Id: Record.pm,v 1.18 2006-10-30 16:13:49 mike Exp $ package ZOOM::IRSpy::Record; @@ -8,7 +8,7 @@ use warnings; use XML::LibXML; use XML::LibXML::XPathContext; - +use ZOOM::IRSpy::Utils qw(xml_encode); =head1 NAME @@ -48,9 +48,9 @@ sub _empty_zeerex_record { ### Doesn't recognise SRU/SRW URLs my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target); - my $xhost = ZOOM::IRSpy::xml_encode($host); - my $xport = ZOOM::IRSpy::xml_encode($port); - my $xdb = ZOOM::IRSpy::xml_encode($db); + my $xhost = xml_encode($host); + my $xport = xml_encode($port); + my $xdb = xml_encode($db); return <<__EOT__; diff --git a/lib/ZOOM/IRSpy/Utils.pm b/lib/ZOOM/IRSpy/Utils.pm index 61636c4..c139995 100644 --- a/lib/ZOOM/IRSpy/Utils.pm +++ b/lib/ZOOM/IRSpy/Utils.pm @@ -1,4 +1,4 @@ -# $Id: Utils.pm,v 1.1 2006-10-30 15:02:06 mike Exp $ +# $Id: Utils.pm,v 1.2 2006-10-30 16:13:49 mike Exp $ package ZOOM::IRSpy::Utils; @@ -6,6 +6,40 @@ use 5.008; use strict; use warnings; -sub x { return 1 } +use Exporter 'import'; +our @EXPORT_OK = qw(xml_encode irspy_xpath_context); + + +# Utility functions follow, exported for use of web UI + +# 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 irspy_xpath_context { + my($zoom_record) = @_; + + my $xml = $zoom_record->render(); + my $parser = new XML::LibXML(); + my $doc = $parser->parse_string($xml); + my $root = $doc->getDocumentElement(); + my $xc = XML::LibXML::XPathContext->new($root); + $xc->registerNs(e => 'http://explain.z3950.org/dtd/2.0/'); + $xc->registerNs(i => $ZOOM::IRSpy::irspy_ns); + return $xc; +} + 1; diff --git a/web/htdocs/chrome/layout.mc b/web/htdocs/chrome/layout.mc index 07690b3..ce8e739 100644 --- a/web/htdocs/chrome/layout.mc +++ b/web/htdocs/chrome/layout.mc @@ -1,4 +1,4 @@ -%# $Id: layout.mc,v 1.12 2006-10-30 14:58:15 mike Exp $ +%# $Id: layout.mc,v 1.13 2006-10-30 16:13:49 mike Exp $ <%args> $debug => undef $title @@ -7,7 +7,7 @@ $component <%once> use URI::Escape; use ZOOM::IRSpy::Web; -use ZOOM::IRSpy qw(irspy_xpath_context xml_encode); +use ZOOM::IRSpy::Utils qw(irspy_xpath_context xml_encode); <& /chrome/head.mc, title => $title &>