use Test; BEGIN { plan tests => 14 } use XML::LibXSLT; my $parser = XML::LibXML->new(); my $xslt = XML::LibXSLT->new(); ok($parser); ok($xslt); $xslt->register_function('urn:foo' => 'test', sub { ok(1); defined $_[1] ? return $_[0] . $_[1] : return $_[0] }); $xslt->register_function('urn:foo' => 'test2', sub { ok(ref($_[0]), 'XML::LibXML::NodeList'); ref($_[0]) }); $xslt->register_function('urn:foo' => 'test3', sub { ok(@_ == 0); return; }); my $source = $parser->parse_string(<<'EOT'); EOT my $style = $parser->parse_string(<<'EOT'); (( )) (( )) [[ ]] [[ ]] (( )) (( )) EOT ok($style); my $stylesheet = $xslt->parse_stylesheet($style); my $results = $stylesheet->transform($source); ok($results); ok($stylesheet->output_string($results), qr(Foo!)); ok($stylesheet->output_string($results), qr(NodeList)); print $stylesheet->output_string($results), "\n";