Lines 132-139
__PACKAGE__->mk_accessors(qw( do_not_return_source print_warns ));
Link Here
|
132 |
|
132 |
|
133 |
my $output= $xslt_engine->transform( $xml, $xsltfilename ); |
133 |
my $output= $xslt_engine->transform( $xml, $xsltfilename ); |
134 |
#Alternatively: |
134 |
#Alternatively: |
135 |
#$output = $xslt_engine->transform({ xml => $xml, file => $file }); |
135 |
#$output = $xslt_engine->transform({ xml => $xml, file => $file, [parameters => $parameters] }); |
136 |
#$output = $xslt_engine->transform({ xml => $xml, code => $code }); |
136 |
#$output = $xslt_engine->transform({ xml => $xml, code => $code, [parameters => $parameters] }); |
137 |
if( $xslt_engine->err ) { |
137 |
if( $xslt_engine->err ) { |
138 |
#decide what to do on failure.. |
138 |
#decide what to do on failure.. |
139 |
} |
139 |
} |
Lines 156-165
sub transform {
Link Here
|
156 |
# old style: $xml, $filename |
156 |
# old style: $xml, $filename |
157 |
# new style: $hashref |
157 |
# new style: $hashref |
158 |
my ( $xml, $filename, $xsltcode ); |
158 |
my ( $xml, $filename, $xsltcode ); |
|
|
159 |
my $parameters = {}; |
159 |
if( ref $_[0] eq 'HASH' ) { |
160 |
if( ref $_[0] eq 'HASH' ) { |
160 |
$xml = $_[0]->{xml}; |
161 |
$xml = $_[0]->{xml}; |
161 |
$xsltcode = $_[0]->{code}; |
162 |
$xsltcode = $_[0]->{code}; |
162 |
$filename = $_[0]->{file} if !$xsltcode; #xsltcode gets priority |
163 |
$filename = $_[0]->{file} if !$xsltcode; #xsltcode gets priority |
|
|
164 |
$parameters = $_[0]->{parameters} if ref $_[0]->{parameters} eq 'HASH'; |
163 |
} else { |
165 |
} else { |
164 |
( $xml, $filename ) = @_; |
166 |
( $xml, $filename ) = @_; |
165 |
} |
167 |
} |
Lines 192-198
sub transform {
Link Here
|
192 |
return $retval; |
194 |
return $retval; |
193 |
} |
195 |
} |
194 |
my $str = eval { |
196 |
my $str = eval { |
195 |
my $result = $stsh->transform($source); |
197 |
#$parameters is an optional hashref that contains |
|
|
198 |
#key-value pairs to be sent to the XSLT. |
199 |
#Numbers may be bare but strings must be double quoted |
200 |
#(e.g. "'string'" or '"string"'). See XML::LibXSLT for |
201 |
#more details. |
202 |
|
203 |
#NOTE: Parameters are not cached. They are provided for |
204 |
#each different transform. |
205 |
my $result = $stsh->transform($source, %$parameters); |
196 |
$stsh->output_as_chars($result); |
206 |
$stsh->output_as_chars($result); |
197 |
}; |
207 |
}; |
198 |
if ($@) { |
208 |
if ($@) { |