package Tree::Template::Declare::HTML_Element; use strict; use warnings; use Carp; use HTML::Element; sub new { my ($class)=@_; return bless {},$class; } sub new_tree { my ($self)=@_; return bless [],'Tree::Template::Declare::HTML_Element::Tree'; } sub finalize_tree { my ($self,$tree)=@_; my $dom=$tree->[0]; $dom->deobjectify_text(); return $dom; } sub new_node { my ($self)=@_; return HTML::Element->new('~comment'); } sub add_child_node { my ($self,$parent,$child)=@_; if ($parent->isa('Tree::Template::Declare::HTML_Element::Tree')) { push @$parent,$child; return $parent; } return $parent->push_content($child); } sub set_node_name { my ($self,$node,$name)=@_; return $node->tag($name); } sub set_node_attributes { my ($self,$node,$attrs)=@_; while (my ($name,$val)=each %$attrs) { $node->attr($name, $val); } return; } 1;