且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RSS尝试

更新时间:2022-09-19 16:22:24

笔记:rss2schema(这个项目很棒,实现了标准的RSS2.0的结构,可惜是没几个站点完整的遵循了这个标准,哪怕是sina,看那么多结构头都大了)、GizmoRSS(这个很实际,是个爱好者写的,代码很简单很容易看懂,但是很明显它的架构只适合小东西)、RSS文件结构(这个就不用多说了)。

测试要求:1)要求直接读取rss源(这个实现方法很多,标准的是用webclient,我用了简单的load函数,如果是真实的项目的话前者更好)2)正确读取sina和Oblog的源(这一条我测试了下,发现大多的rss源还是遵循rss2.0的标准的,不同的是大多不完整而已)。

测试结果图:

1.这个结果的部分截图

RSS尝试

2.这个是结果中去掉description的截图

RSS尝试 

测试代码:

RSS尝试
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/>");
        }
    }
}
本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2009/04/02/1428211.html,如需转载请自行联系原作者