RSS尝试

简介:

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

测试要求: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/>");
        }
    }
}
本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2009/04/02/1428211.html,如需转载请自行联系原作者
相关文章
|
7月前
|
存储 Kubernetes 网络协议
使用 K8S 部署 RSS 全套自托管解决方案 - RssHub + Tiny Tiny Rss
使用 K8S 部署 RSS 全套自托管解决方案 - RssHub + Tiny Tiny Rss
|
5月前
|
开发者 Java
JVM内存问题之top命令的物理内存信息中,'used'和'free','avail Mem'分别表示什么
JVM内存问题之top命令的物理内存信息中,'used'和'free','avail Mem'分别表示什么
05EasyUI 应用- 创建 RSS Feed 阅读器
05EasyUI 应用- 创建 RSS Feed 阅读器
53 0
|
监控 搜索推荐
最佳RSS阅读器
最佳RSS阅读器
|
Linux Shell Android开发
Linux内存工具解析之RSS/VSS/USS/PSS区别于联系
Linux内存工具解析之RSS/VSS/USS/PSS区别于联系
1177 0
|
XML 数据格式
|
XML 数据格式 缓存
|
算法 虚拟化 Windows