/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 171 - (hide 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 dpavlin 171 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