in reply to Re^2: Trying to get an RSS to display
in thread Trying to get an RSS to display
Welcome, see The Perl Monks Guide to the Monastery, see How do I post a question effectively?, Where should I post X?
Your updated code does not compile :)
If you look at the docs for XML::RSS you can see an example of accessing items . See also References quick reference
#!/usr/bin/perl -- use constant DEBUG => !!( 0 || $ENV{PERL_DEBUG_MYAPPNAME} ); use CGI::Carp qw( fatalsToBrowser ); use CGI; # to avoid those pesky 500 errors BEGIN { CGI::Carp::set_message( sub { print "<h1>something broke, we know what it is, thank you, + try again later</h1>\n"; if (DEBUG) { print '<p>', CGI->escapeHTML(@_), '</p>'; } } ); } ## end BEGIN use strict; use warnings; use Data::Dumper (); use LWP::Simple qw( get ); use XML::RSS; Main( @ARGV ); exit( 0 ); sub Main { #~ return DebugCGI(); # generic, env.cgi return RSSMoo('file:animals.rss.xml'); # for testing #~ return RSSMoo("http://feeds.feedburner.com/animals"); } ## end sub Main sub RSSMoo { my $url = shift; my $rss_content = get($url); my $cgi = CGI->new; my $feed = XML::RSS->new->parse($rss_content); binmode STDOUT, ":encoding(UTF-8)"; $cgi->charset('UTF-8'); print $cgi->header, $cgi->start_html; for my $item ( @{ $feed->{items} } ) { print '<div style="border: 2px solid black ;">'; print FudgeA( $item ); print '</div>'; } print '<div style="white-space: pre; overflow: scroll; height: 300 +px;">', $cgi->escapeHTML( DD( $feed ) ), '</div><hr><hr><hr>'; print $cgi->end_html; } ## end sub RSSMoo sub FudgeA { my $iref = shift; return '<p>'.CGI->a( { -href => $iref->{link}, }, CGI->escapeHTML( + $iref->{title} ) ).'</p>'; } sub FudgeB { my $iref = shift; return CGI->new( $iref )->Dump . '<hr>'; } sub FudgeC { my $iref = shift; my $ret = '<div>'; $ret .= '<p>' . CGI->escapeHTML( $iref->{title} ) . '</p>'; while( my( $k, $v ) = each %$iref ){ $ret .= "<p><strong>"; $ret .= CGI->escapeHTML( $k ); $ret .= "</strong> "; $ret .= CGI->escapeHTML( $v ); $ret .= '</p>'; } $ret .= '</div>'; return $ret; } sub DebugCGI { my $cgi = CGI->new; print $cgi->header(); # Write HTTP header print $cgi->start_html, $cgi->b( rand time, ' ', scalar gmtime ), '<table border="1" width="%100"><tr><td>', $cgi->Dump, '</td>', '<td><div style="white-space: pre-wrap; overflow: scroll;">', $cgi->escapeHTML( DD($cgi) ), '</div></td></tr></table>', CGI->new( \%ENV )->Dump, $cgi->end_html; } ## end sub DebugCGI sub DD { scalar Data::Dumper->new( \@_ )->Indent(1)->Useqq(1)->Dump; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Trying to get an RSS to display
by Henglong (Initiate) on Oct 27, 2011 at 13:37 UTC | |
|
Re^4: Trying to get an RSS to display
by Henglong (Initiate) on Oct 27, 2011 at 16:24 UTC | |
by Anonymous Monk on Oct 27, 2011 at 21:20 UTC |