Jonathan Rockway > Template-Refine > Template::Refine::Fragment

Download:
Template-Refine-0.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

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::Rules 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.
syntax highlighting: