XML-LibXSLT-Easy
view release on metacpan or search on metacpan
lib/XML/LibXSLT/Easy.pm view on Meta::CPAN
#!/usr/bin/perl
package XML::LibXSLT::Easy;
use Moose;
our $VERSION = "0.03";
use Carp qw(croak);
use Devel::PartialDump qw(warn dump);
use XML::LibXML;
use XML::LibXSLT;
use Path::Class;
use URI;
use URI::file;
use URI::data;
use Scope::Guard;
use MooseX::MultiMethods;
use MooseX::Types::Moose qw(Str FileHandle Item Undef);
use MooseX::Types::Path::Class qw(File);
use MooseX::Types::URI qw(Uri);
use MooseX::Types -declare => [qw(Stylesheet Document)];
BEGIN {
class_type Stylesheet, { class => "XML::LibXSLT::StylesheetWrapper" };
class_type Document, { class => "XML::LibXML::Document" };
}
use namespace::clean -except => [qw(meta)];
has xml => (
isa => "XML::LibXML",
is => "rw",
lazy_build => 1,
handles => [qw(
parse_string
parse_fh
parse_file
base_uri
)],
);
has xml_options => (
isa => "HashRef",
is => "rw",
default => sub { {} },
);
sub _build_xml {
my $self = shift;
XML::LibXML->new( %{ $self->xml_options } );
}
has xslt=> (
isa => "XML::LibXSLT",
is => "rw",
lazy_build => 1,
handles => [qw(
parse_stylesheet
transform
)],
);
has xslt_options => (
isa => "HashRef",
is => "rw",
default => sub { {} },
);
sub process {
my ( $self, %args ) = @_;
my ( $xml, $xsl, $out, $uri ) = @args{qw(xml xsl out input_uri)};
$uri ||= $self->get_uri($xml);
( run in 2.089 seconds using v1.01-cache-2.11-cpan-e86d8f7595a )