speedup: parse xslt just one
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 22 Nov 2013 14:19:52 +0000 (15:19 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 22 Nov 2013 14:19:52 +0000 (15:19 +0100)
html.pl

diff --git a/html.pl b/html.pl
index 5c30cc6..16c8eb1 100755 (executable)
--- a/html.pl
+++ b/html.pl
@@ -125,6 +125,12 @@ sub html_end {
 
 my $biblio_html;
 
+my $parser = XML::LibXML->new();
+$parser->recover_silently(0); # don't die when you find &, >, etc
+my $style_doc = $parser->parse_file($xslfilename);
+my $xslt = XML::LibXSLT->new();
+my $parsed = $xslt->parse_stylesheet($style_doc);
+
 sub biblioitem_html {
        my $biblionumber = shift;
 
@@ -132,13 +138,8 @@ sub biblioitem_html {
 
        my $xmlrecord = $marcxml->{$biblionumber} || die "missing $biblionumber marcxml";
 
-       my $parser = XML::LibXML->new();
-       $parser->recover_silently(0); # don't die when you find &, >, etc
-    my $source = $parser->parse_string($xmlrecord);
-       my $style_doc = $parser->parse_file($xslfilename);
+       my $source = $parser->parse_string($xmlrecord);
 
-       my $xslt = XML::LibXSLT->new();
-       my $parsed = $xslt->parse_stylesheet($style_doc);
        my $transformed = $parsed->transform($source);
        return $biblio_html->{$biblionumber} = $parsed->output_string( $transformed );
 }