NAME
Template::Refine::Fragment - represent and refine a fragment of HTML
SYNOPSIS
use Template::Refine::Fragment;
use Template::Refine::Processor::Rule;
use Template::Refine::Processor::Rule::Select::XPath;
use Template::Refine::Processor::Rule::Transform::Replace::WithText;
my $frag = Template::Refine::Fragment->new_from_string(
'<p>Hello, <span class="world"/>.' # invalid HTML ok
);
my $refined = $frag->process(
Template::Refine::Processor::Rule->new(
selector => Template::Refine::Processor::Rule::Select::XPath->new(
pattern => '//*[@class="world"]',
),
transformer => Template::Refine::Processor::Rule::Transform::Replace::WithText->new(
replacement => sub {
return 'world';
},
),
),
);
return $refined->render; # "<p>Hello, <span class="world">world</span>.</p>"
METHODS
new( fragment => $fragment )
Accepts one argument, fragment, which is the XML::LibXML::DocumentFragment that you want to operate on.
The constructors below are more useful.
new_from_dom( $dom )
Accepts an XML::LibXML::DOM object
new_from_string( $html_string )
Accepts an HTML string
new_from_file( $filename )
Accepts a filename containing HTML
fragment
Return the XML::LibXML::DocumentFragment
that backs this object.
process( @rules )
Apply Template::Refine::Processor::Rule
s in @rules
and return a new Template::Refine::Fragment
.
render
Return the fragment as valid HTML
BUGS
Report to RT.
VERSION CONTROL
You can browse the repository at:
http://git.jrock.us/?p=Template-Refine.git;a=summary
You can clone the repository by typing:
git clone git://git.jrock.us/Template-Refine
Please e-mail me any patches. Thanks in advance for your help!
AUTHOR
Jonathan Rockway <jrockway@cpan.org>
COPYRIGHT
Copyright (c) 2008 Infinity Interactive. All rights reserved This
program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.