1 #################################################################################################
2 #################################################################################################
3 #################################################################################################
4 # LibXML LIBXSLT access subrutines
5 #################################################################################################
6 #################################################################################################
7 #################################################################################################
9 #################################################################################################
11 # Usage: loadstyle($key,$uri,$stylesheet);
12 # Returns: error message or 0 on success,
13 # parsed stylesheet in $stylesheet
14 # Do: parse the stylesheet at the given uri
15 # Used by: addvalues , reloadvalues
16 # Uses : err_replace, parser_error_replace
17 #################################################################################################
20 my $ls_key= shift(@_);
21 my $ls_uri= shift(@_);
27 eval { $style_doc = $parser->parse_file($ls_uri); };
28 print STDERR "____\n";
29 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
32 if ($@ or $uncatched ne "")
34 return err_replace($error{"add_xml_error"},$ls_key,$ls_uri,parser_error_replace($@.$uncatched));
42 eval { $_[0] = $xslt->parse_stylesheet($style_doc); };
43 print STDERR "____\n";
44 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
46 if ($@ or $uncatched ne "")
48 return err_replace($error{"add_xslt_error"},$ls_key,$ls_uri,parser_error_replace($@.$uncatched));
56 my $xmluri = shift(@_);
61 eval { $_[0] = $parser->parse_file($xmluri); };
62 print STDERR "____\n";
63 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
65 if ($@ or $uncatched ne "")
67 return err_replace($error{"apply_xml_error"},"",$xmluri,parser_error_replace($@.$uncatched));
75 my $params_ptr = shift(@_);
76 my %params = XML::LibXSLT::xpath_to_string(%$params_ptr);
82 XML::LibXSLT->max_depth($max_depth);
83 eval { $_[0] = $stylesheet_hash{$k}[1]->transform($_[0],%params); };
84 print STDERR "____\n";
85 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
87 if ($@ or $uncatched ne "")
89 my $e_r = parser_error_replace($@.$uncatched);
90 return err_replace($error{"apply_xslt_error"},$k,$stylesheet_hash{$k}[0],$e_r);
97 my $results = shift(@_);
102 STDERR->autoflush(1);
103 eval { $retval = $stylesheet_hash{$k}[1]->output_string($results); };
104 print STDERR "____\n";
105 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
107 if ($@ or $uncatched ne "")
109 my $e_r = parser_error_replace($@.$uncatched);
110 return operror_print(err_replace($error{"apply_xslt_out_error"},"","",$e_r));
112 else { return $retval; }
116 my $result = shift(@_);
121 STDERR->autoflush(1);
122 eval { $retval = $result->toString; };
123 print STDERR "____\n";
124 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
126 if ($@ or $uncatched ne "")
128 my $e_r = parser_error_replace($@.$uncatched);
129 return operror_print(err_replace($error{"apply_xslt_out_error"},"","",$e_r));
131 else { return $retval; }
136 my $result = shift(@_);
141 STDERR->autoflush(1);
142 eval { $retval = $result->toStringHTML();};
143 print STDERR "____\n";
144 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
146 if ($@ or $uncatched ne "")
148 my $e_r = parser_error_replace($@.$uncatched);
149 return operror_print(err_replace($error{"apply_xslt_out_error"},"","",$e_r));
151 else { return $retval; }
156 my $result = shift(@_);
162 STDERR->autoflush(1);
163 eval { $retval = decodeFromUTF8($enc, $result);};
164 print STDERR "____\n";
165 while(($line = <P>) ne "____\n") { $uncatched .= $line; }
167 if ($@ or $uncatched ne "")
169 my $e_r = parser_error_replace($@.$uncatched);
170 return operror_print(err_replace($error{"apply_xslt_out_error"},"","",$e_r));
172 else { return $retval; }
174 #################################################################################################