How to parse RSS using PHP and C#
In last article I explained what is RSS feed, and how to create it, this time I will show how to parse it and display on your website using PHP and C#. As we know RSS is just a XML feed that needs to be parsed meaning that the text generated in RSS has to be separated into parts like title, link, description etc…
Now I will jump right into the code without further explanations, code speaks for itself.
Parse RSS using PHP
<? function getElement($element,$item) { $temp = split("<".$element.">",$item); $temp = split("</".$element.">",$temp[1]); return (!empty($temp[0]))?trim($temp[0]):""; } $feedURL = "http://www.superiorwebsys.com/blog/rss/"; // should be changed to RSS that you are interested in like http://rss.cbc.ca/lineup/technology.xml $feed=file_get_contents($feedURL); $temp = split("</copyright>",$feed); $temp = split("</channel>",$temp[1]); $temp[0] = str_replace("<item>","",$temp[0]); $temp = split("</item>",$temp[0]); foreach($temp as $item) { if(getElement("pubDate",$item)) {?> <div> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td> <a href="<?=getElement("link",$item)?>" style="font-family:Arial, Helvetica, sans-serif; font-size:18px; color:#993366;"> <?=date("F d, Y",strtotime(getElement("pubDate",$item)))?> - <?=getElement("title",$item)?> </a> </td> </tr> <tr><td height="5px"></td></tr> <tr> <td style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#2D4560;"> <?=getElement("description",$item)?> </td> </tr> <tr><td height="10px"></td></tr> </table> </div> <? } } ?>
You can see script out put here: http://superiorwebsys.com/blog/posts/rssParser.php
Parse RSS using C#
<%@ Page Language="C#" %>
<script runat="server">
public void parse_rss(string r_url)
{
System.Net.WebRequest myRequest = System.Net.WebRequest.Create(r_url);
System.Net.WebResponse myResponse = myRequest.GetResponse();
System.IO.Stream r_stream = myResponse.GetResponseStream();
System.Xml.XmlDocument r_doc = new System.Xml.XmlDocument();
r_doc.Load(r_stream);
System.Xml.XmlNodeList r_items = r_doc.SelectNodes("rss/channel/item");
string title = "", link = "", s_description = "";
for (int i = 0; i < r_items.Count; i++)
{
System.Xml.XmlNode r_detail;
title = ""; link = ""; s_description = "";
r_detail = r_items.Item(i).SelectSingleNode("title");
if (r_detail != null) { title = r_detail.InnerText; }
r_detail = r_items.Item(i).SelectSingleNode("link");
if (r_detail != null) { link = r_detail.InnerText; }
r_detail = r_items.Item(i).SelectSingleNode("description");
if (r_detail != null) { s_description = r_detail.InnerText; }
Response.Write("<p><b><a href='" + link + "' target='new'>" + title + "</a></b><br/>" + s_description + "</p>");
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server"><%
string r_url = "http://superiorwebsys.com/blog/rss/";
parse_rss(r_url);
%></form></body></html>
Michael Pankratov |