The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

HTML::Linear::Path - represent paths inside HTML::Tree

VERSION

version 0.009

SYNOPSIS

    use HTML::Linear::Path;

    my $level = HTML::Linear::Path->new({
        address     => q(0.1.1.3.0),
        attributes  => {
            id  => q(li1),
        },
        strict      => 0,
        tag         => q(li),
    });

ATTRIBUTES

json

Lazy JSON::XS instance.

address

Location inside HTML::TreeBuilder tree.

attributes

Element attributes.

key

Stringified path representation.

strict

Strict mode disables grouping by tags/attributes listed in "%HTML::Linear::Path::groupby".

tag

Tag name.

METHODS

as_string

Build a quick & dirty string representation of a path the HTML::TreeBuilder structure.

as_xpath

Build a nice XPath representation of a path inside the HTML::TreeBuilder structure.

weight

Return tag weight.

FUNCTIONS

_quote

Quote attribute values for XPath representation.

_wrap

Help to make a fancy XPath.

_isgroup($tag, $attribute)

Checks if $tag/$attribute tuple matches "%HTML::Linear::Path::groupby".

GLOBALS

%HTML::Linear::Path::groupby

Tags/attributes significant as XPath filters. @class/@id are the most obvious; we also use meta/@property, input/@name and several others.

%HTML::Linear::Path::tag_weight

Table of HTML tag weights. Borrowed from TexNet32 - WWW filters.

%HTML::Linear::Path::xpath_wrap

Wrap XPath components to produce fancy syntax highlight.

The format is:

    (
        array       => ['' => ''],
        attribute   => ['' => ''],
        equal       => ['' => ''],
        number      => ['' => ''],
        separator   => ['' => ''],
        sigil       => ['' => ''],
        tag         => ['' => ''],
        value       => ['' => ''],
    )

AUTHOR

Stanislaw Pusep <stas@sysd.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Stanislaw Pusep.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.