sub starttag { my($self, $entities) = @_; my $name = $self->{'_tag'}; return $self->{'text'} if $name eq '~literal'; return "<!" . $self->{'text'} . ">" if $name eq '~declaration'; return "<?" . $self->{'text'} . ">" if $name eq '~pi'; if($name eq '~comment') { if(ref($self->{'text'} || '') eq 'ARRAY') { # Does this ever get used? And is this right? return "<!" . join(' ', map("--$_--", @{$self->{'text'}})) . ">" ; } else { return "<!--" . $self->{'text'} . "-->" } } my $tag = $html_uc ? "<\U$name" : "<\L$name"; my $val; for (sort keys %$self) { # predictable ordering next if !length $_ or m/^_/s or $_ eq '/'; $val = $self->{$_}; next if !defined $val; # or ref $val; if ($_ eq $val && # if attribute is boolean, for this elemen +t exists($HTML::Element::boolean_attr{$name}) && (ref($HTML::Element::boolean_attr{$name}) ? $HTML::Element::boolean_attr{$name}{$_} : $HTML::Element::boolean_attr{$name} eq $_) ) { $tag .= $html_uc ? " \U$_" : " \L$_"; } else { # non-boolean attribute if (ref $val eq 'HTML::Element' and $val->{_tag} eq '~literal') { $val = $val->{text}; } else { HTML::Entities::encode_entities($val, $entities) unless (d +efined($entities) && !length($entities)); } $val = qq{"$val"}; $tag .= $html_uc ? qq{ \U$_\E=$val} : qq{ \L$_\E=$val}; } } # for keys if ( scalar $self->content_list == 0 && $self->_empty_element_map- +>{ $self->tag } ) { return $tag . " />"; } else { return $tag . ">"; } }
In reply to Re: HTML::TreeBuilder and HTML4.01 empty elements
by Anonymous Monk
in thread HTML::TreeBuilder and HTML4.01 empty elements
by wfsp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |