Other Outputs and Selective Parsing
In
all of our examples
so far, we have written the parsed feed to a file handle for use
inside another web page. This is just the start. We could use the
same basic structure to output to just about anything that handles
text. Example 9-4 is a script that sends the top
headline of a feed to a mobile phone via the
Short Message
Service (SMS). It uses the WWW::SMS
module,
outputting to the first web-based free SMS service it can find that
works.
Example 9-4. rsssms.pl sends the first headline title to a mobile phone via SMS
#!/usr/local/bin/perl use strict; use warnings; use LWP::Simple; use XML::Simple; use WWW::SMS; # Take the command line arguments, URL first, then complete number of mobile my $url=$ARGV[0]; my $number=$ARGV[1]; # Retrieve the feed, or die disgracefully my $feed_to_parse = get ($url) or die "I can't get the feed you want"; # Parse the XML my $parser = XML::Simple->new( ); my $rss = $parser->XMLin("$feed_to_parse"); # Get the data we want my $message = "NEWSFLASH:: $rss->{'channel'}->{'item'}->[0]->{'title'}"; # Send the message my @gateway = WWW::SMS->gateways( ); my $sms = WWW::SMS->new($number, $message); foreach my $gateway(@gateway) {if ($sms->send($gateway)) { print 'Message sent!'; last; } else { print "Error: $WWW::SMS::Error\n"; }}
You can use the script in Example 9-4 from the command line or crontab like so:
perl rsssms.pl http://full.urlof/feed.xml 123456789
You can see how one might set this up on crontab to send ...
Get Content Syndication with RSS now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.