/[Frey]/trunk/lib/Frey/HTML.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/Frey/HTML.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 171 - (show annotations)
Fri Aug 15 23:49:11 2008 UTC (15 years, 8 months ago) by dpavlin
File size: 772 byte(s)
html to xhtml re-parser based on HTML::TreeBuilder
1 package Frey::HTML;
2 use Moose;
3
4 use HTML::TreeBuilder;
5 use Data::Dump qw/dump/;
6
7 has 'html' => (
8 is => 'rw',
9 isa => 'Str',
10 required => 1,
11 );
12
13 sub xhtml {
14 my $self = shift;
15
16 my $html = HTML::TreeBuilder->new;
17
18 $html->parse( $self->html );
19 $html->eof;
20
21 my $result = _parse( $html->guts );
22 $html->delete;
23
24 return $result;
25 }
26
27 sub _parse {
28 foreach my $element ( @_ ) {
29 if ( blessed $element && $element->isa('HTML::Element') ) {
30 my $tag = $element->tag;
31 my @kids = $element->content_list;
32 warn dump( $tag, @kids );
33 return "<$tag>" . _parse( @kids ) . "</$tag>";
34 } else {
35 # plain text
36 warn dump( $element );
37 return _escape( $element );
38 }
39 }
40 }
41
42 sub _escape {
43 my $html = shift;
44 $html =~ s/</&lt;/;
45 $html =~ s/>/&gt;/;
46 return $html;
47 }
48
49 1;

  ViewVC Help
Powered by ViewVC 1.1.26