Apache::AxKit::Util::LibXSLTAddonFunction - AxKit extension to load perl callbacks for XSL
package Apache::AxKit::Util::MiscAddonFunctions; use base qw( Apache::AxKit::Util::LibXSLTAddonFunction ); use strict; use XML::LibXML; my $parser = XML::LibXML->new(); sub init { my $this = shift; $this->addRegisteredFunction( "staticFunction", \&staticFunction ); $this->addRegisteredFunction( "instanceMethod", sub { $this->instanceMethod( @_ ) } ); } sub getNamespace { return "urn:perl-example-addon"; } sub staticMethod { my $val = shift; ## this is not 100% correct $val =~ s/<\s+/</; my $doc = $parser->parse_string(<<"EOT"); <tree> $val </tree> EOT return $doc->getElementsByTagName("tree"); } sub instanceMethod { my $this = shift; my $val = shift; ## this is not 100% correct $val =~ s/<\s+/</; my $doc = $parser->parse_string(<<"EOT"); <tree> $val </tree> EOT return $doc->getElementsByTagName("tree"); } 1; ## in XSL <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML="org.omg.xmi.namespace.UML" xmlns:str="http://exslt.org/strings" xmlns:pma="urn:perl-example-addon" xmlns:exslt="http://exslt.org/common" extension-element-prefixes="str"> .... <xsl:value-of select="pma:staticMethod('Hallo')" /> <xsl:value-of select="pma:instanceMethod('Hallo')" /> ....
This is an abstract base class. Classes used by Apache::AxKit::Language::LibXSLTEnhanced must inherit from this class and implement the following 2 methods:
init
getNamespace
None by default.
Apache::AxKit::Language::LibXSLT, AxKit, Apache::AxKit::Language::LibXSLTEnhanced
Tom Schindl, <tom.schindl@bestsolution.at>
Copyright (C) 2004 by Tom Schindl
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.
To install Apache::AxKit::Language::LibXSLTEnhanced, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Apache::AxKit::Language::LibXSLTEnhanced
CPAN shell
perl -MCPAN -e shell install Apache::AxKit::Language::LibXSLTEnhanced
For more information on module installation, please visit the detailed CPAN module installation guide.