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 )