NAME

HTML::Linear::Element - represent elements to populate HTML::Linear

VERSION

version 0.019

SYNOPSIS

use HTML::Linear::Element;
use HTML::Linear::Path;

my $el = HTML::Linear::Element->new({
    depth   => 0,
    path    => [ HTML::Linear::Path->new({ address => q(...), tag => q(...) }) ],
})

ATTRIBUTES

attributes

Element attributes.

content

Element content.

depth

Depth level of an element inside a HTML::TreeBuilder structure.

index

Index to preserve elements order.

index_map

Used for internal collision detection.

key

Stringified element representation.

path

Store representations of paths inside HTML::TreeBuilder structure (HTML::Linear::Path).

sha

Lazy Digest::SHA (256-bit) representation.

strict

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

trim_at

XPath seems to be unique after that level.

METHODS

as_string

Stringified signature of an element.

as_xpath

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

Returns string in scalar context or XPath segments in list context.

as_hash

Linearize element as an associative array (Perl hash).

weight

Return XPath weight.

AUTHOR

Stanislaw Pusep <stas@sysd.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 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.