Revision: 18415
Updated Code
at September 30, 2009 15:01 by karlhorky
Updated Code
# Modify XML Feed Items' pubDate to different date format
# Author: Karl Horky
# Date: 29 September 2009
#
# Sample Input:
# <?xml version="1.0" encoding="UTF-8"?>
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright �© 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www.news.com/news_release_1.htm</link>
# <pubDate>Tue, 29 Sep 2009 17:47:42 GMT</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www.news.com/news_release_2.htm</link>
# <pubDate>Mon, 24 Aug 2009 07:00:00 GMT</pubDate>
# </item>
# </channel>
# </rss>
#
#
#
# Sample Output file:
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright �© 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www.news.com/news_release_1.htm</link>
# <pubDate>September 29, 2009</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www.news.com/news_release_2.htm</link>
# <pubDate>August 24, 2009</pubDate>
# </item>
# </channel>
# </rss>
#
#!/usr/local/bin/perl
require LWP::UserAgent;
use Data::Dumper;
use XML::Simple;
use Date::Manip;
$output = 'feed.xml'; # The location of your output file
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://www.example.com/feed.xml'); # The location of the input file
if ($response->is_success) {
$xml = $response->content;
} else {
exit (1);
}
my $xs = new XML::Simple(keeproot => 1,searchpath => ".", forcearray => 1, keyattr => [key, tag]);
my $ref = $xs->XMLin($xml, KeepRoot => 1);
foreach my $item (@{$ref->{rss}->[0]->{channel}->[0]->{item}}){
my $currDate = \$item->{pubDate}->[0];
$$currDate = UnixDate($$currDate,"%B %d, %Y");
}
my $xml = $xs->XMLout($ref, KeepRoot=>1);
open (OUT, ">$output") or die "Cannot open file $output: $!\n";
print OUT $xml;
close (OUT);
Revision: 18414
Updated Code
at September 30, 2009 14:55 by karlhorky
Updated Code
# Modify XML Feed Items' pubDate to different date format
# Author: Karl Horky
# Date: 29 September 2009
#
# Sample Input:
# <?xml version="1.0" encoding="UTF-8"?>
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright © 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www.news.com/news_release_1.htm</link>
# <pubDate>Tue, 29 Sep 2009 17:47:42 GMT</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www.news.com/news_release_2.htm</link>
# <pubDate>Mon, 24 Aug 2009 07:00:00 GMT</pubDate>
# </item>
# </channel>
# </rss>
#
#
#
# Sample Output file:
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright © 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www.news.com/news_release_1.htm</link>
# <pubDate>September 29, 2009</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www.news.com/news_release_2.htm</link>
# <pubDate>August 24, 2009</pubDate>
# </item>
# </channel>
# </rss>
#
#!/usr/local/bin/perl
require LWP::UserAgent;
use Data::Dumper;
use XML::Simple;
use Date::Manip;
$output = 'feed.xml'; # The location of your output file
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://www.example.com/feed.xml'); # The location of the input file
if ($response->is_success) {
$xml = $response->content;
} else {
exit (1);
}
my $xs = new XML::Simple(keeproot => 1,searchpath => ".", forcearray => 1, keyattr => [key, tag]);
my $ref = $xs->XMLin($xml, KeepRoot => 1);
foreach my $item (@{$ref->{rss}->[0]->{channel}->[0]->{item}}){
my $currDate = \$item->{pubDate}->[0];
$$currDate = UnixDate($$currDate,"%B %d, %Y");
}
my $xml = $xs->XMLout($ref, KeepRoot=>1);
open (OUT, ">$output") or die "Cannot open file $output: $!\n";
print OUT $xml;
close (OUT);
Revision: 18413
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 29, 2009 17:14 by karlhorky
Initial Code
# Modify XML Feed Items' pubDate to different date format
# Author: Karl Horky
# Date: 29 September 2009
#
# Sample Input:
# <?xml version="1.0" encoding="UTF-8"?>
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright © 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www2.news.gov.bc.ca/news_releases_2009-2013/2009HSERV0001-000004.htm</link>
# <pubDate>Tue, 29 Sep 2009 17:47:42 GMT</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www2.news.gov.bc.ca/news_releases_2009-2013/2009EDUC0006-000250.htm</link>
# <pubDate>Mon, 24 Aug 2009 07:00:00 GMT</pubDate>
# </item>
# </channel>
# </rss>
#
#
#
# Sample Output file:
# <rss version="2.0">
# <channel>
# <title>News</title>
# <link>http://www.news.com/</link>
# <description>The latest headlines</description>
# <language>en-us</language>
# <copyright>Copyright © 2009</copyright>
# <ttl>5</ttl>
# <item>
# <title>News Item 1</title>
# <description>Item Description 1</description>
# <link>http://www2.news.gov.bc.ca/news_releases_2009-2013/2009HSERV0001-000004.htm</link>
# <pubDate>September 29, 2009</pubDate>
# </item>
#
# <item>
# <title>News Item 2</title>
# <description>Item Description 2</description>
# <link>http://www2.news.gov.bc.ca/news_releases_2009-2013/2009EDUC0006-000250.htm</link>
# <pubDate>August 24, 2009</pubDate>
# </item>
# </channel>
# </rss>
#
#!/usr/local/bin/perl
require LWP::UserAgent;
use Data::Dumper;
use XML::Simple;
use Date::Manip;
$output = 'feed.xml'; # The location of your output file
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://www.example.com/feed.xml'); # The location of the input file
if ($response->is_success) {
$xml = $response->content;
} else {
exit (1);
}
my $xs = new XML::Simple(keeproot => 1,searchpath => ".", forcearray => 1, keyattr => [key, tag]);
my $ref = $xs->XMLin($xml, KeepRoot => 1);
foreach my $item (@{$ref->{rss}->[0]->{channel}->[0]->{item}}){
my $currDate = \$item->{pubDate}->[0];
$$currDate = UnixDate($$currDate,"%B %d, %Y");
}
my $xml = $xs->XMLout($ref, KeepRoot=>1);
open (OUT, ">$output") or die "Cannot open file $output: $!\n";
print OUT $xml;
close (OUT);
Initial URL
Initial Description
Read in a remote XML file, change the pubDate date format, and output to specific local file.
Initial Title
Perl: Modify XML Feed Items' pubDate
Initial Tags
date, replace, xml
Initial Language
Perl