笔记:(这个项目很棒,实现了标准的RSS2.0的结构,可惜是没几个站点完整的遵循了这个标准,哪怕是sina,看那么多结构头都大了)、(这个很实际,是个爱好者写的,代码很简单很容易看懂,但是很明显它的架构只适合小东西)、(这个就不用多说了)。
测试要求:1)要求直接读取rss源(这个实现方法很多,标准的是用webclient,我用了简单的load函数,如果是真实的项目的话前者更好)2)正确读取sina和Oblog的源(这一条我测试了下,发现大多的rss源还是遵循rss2.0的标准的,不同的是大多不完整而已)。
测试结果图:
1.这个结果的部分截图
2.这个是结果中去掉description的截图
测试代码:
using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Xml;namespace RssRead.test { public partial class DownLoad : System.Web.UI.Page { XmlDocument doc; protected void Page_Load(object sender, EventArgs e) { string Olink = "http://feed.blueben.cn/";//oblog string Slink = "http://blog.sina.com.cn/rss/1255849511.xml";//sina ShowBlog(Olink); ShowBlog(Slink); } private void ShowBlog(string link) { doc = new XmlDocument(); doc.Load(link); foreach (XmlNode channel in FindNodes("channel")) { //channel Response.Write("title:" + channel.SelectSingleNode("title").InnerText); ChangeLine(); Response.Write("descriptoin:" + channel.SelectSingleNode("description").InnerText); ChangeLine(); Response.Write("link:" + channel.SelectSingleNode("link").InnerText); ChangeLine(); //item int i = 1; foreach (XmlNode item in channel.SelectNodes("item")) { Response.Write(string.Format("item{0}", i)); ChangeLine(); Response.Write("title:" + item.SelectSingleNode("title").InnerText); ChangeLine(); Response.Write("description:" + item.SelectSingleNode("description").InnerText); ChangeLine(); Response.Write("link:" + item.SelectSingleNode("link").InnerText); ChangeLine(); i++; } } ChangeLine(); } private XmlNodeList FindNodes(string name) { return doc.GetElementsByTagName(name); } private void ChangeLine() { Response.Write("<br/>"); } } }