`
jandroid
  • 浏览: 1978149 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

读取RSS(支持目前所有RSS版本)

 
阅读更多
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Net;
usingSystem.IO;
usingSystem.Xml;
usingSystem.Xml.XPath;

publicclassRssDoc
...{
XmlDocumentdoc;
List
<Hashtable>list;

publicRssDoc()
...{
}


publicRssDoc(XmlDocumentdoc)
...{
this.doc=doc;
Load();
}


/**////<summary>
///获取网络资源
///</summary>
///<paramname="url">url</param>
///<paramname="timeOut">timeout(单位秒)</param>
///<paramname="useProxy">是否用代理</param>

publicstaticXmlDocumentGetDoc(stringurl,inttimeOut,booluseProxy)
...{
XmlDocument_doc
=newXmlDocument();
try
...{
WebRequestreq
=WebRequest.Create(url);
if(useProxy)
...{
WebProxyproxy
=newWebProxy("http://63.149.98.16:80/",true);
req.Proxy
=proxy;
}

req.Timeout
=timeOut*1000;
WebResponseres
=req.GetResponse();
StreamrssStream
=res.GetResponseStream();
_doc.Load(rssStream);
rssStream.Dispose();
res.Close();
}

catch
...{
_doc
=null;
}

return_doc;
}


privatevoidLoad()
...{
list
=newList<Hashtable>();

XmlNodeListnodes
=doc.GetElementsByTagName("item");
if(nodes==null||nodes.Count==0)
nodes
=doc.GetElementsByTagName("entry");
if(nodes==null||nodes.Count==0)
return;

Hashtableht;
XmlNodeListns;
stringname;
stringdate;
foreach(XmlNodenodeinnodes)
...{
ht
=newHashtable();
ns
=node.ChildNodes;
try
...{
foreach(XmlNodeninns)
...{
name
=n.Name.ToLower();
if(name.Contains("link"))
...{
if(n.Attributes["href"]!=null)
ht[
"link"]=n.Attributes["href"].Value.Trim();
elseht["link"]=n.InnerText.Trim();
continue;
}

if(name.Contains("title"))
...{
ht[
"title"]=n.InnerText.Trim();
continue;
}

if(name.Contains("category"))
...{
if(ht["category"]==null)ht["category"]=n.InnerText.Trim();
elseht["category"]=ht["category"].ToString()+","+n.InnerText.Trim();
continue;
}

if(name.Contains("date"))
...{
date
=n.InnerText;
if(date!="")
...{
if(date.Contains(","))date=date.Substring(date.IndexOf(",")+1);
date
=date.Trim();
if(date.Split('').Length>4)date=date.Replace(date.Split('')[4],"");
if(date.Contains("."))date=date.Split('.')[0].Trim();
date
=date.Replace("T","");
if(date.Substring(date.LastIndexOf(":")+1).Length>2)
date
=date.Substring(0,date.LastIndexOf(":")+3);
try...{date=DateTime.Parse(date.Trim()).ToString();}
catch...{date=DateTime.Now.ToString();}
}

elsedate=DateTime.Now.ToString();
ht[
"pubdate"]=date;
continue;
}

if(name.Contains("description"))
...{
ht[
"description"]=n.InnerText.Trim();
continue;
}

if(name.Contains("content"))
...{
ht[
"description"]=n.InnerText.Trim();
continue;
}

if(name.Contains("summary"))
...{
if(ht["description"]==null)ht["description"]=n.InnerText.Trim();
}

}

}

catch
...{
continue;
}

if(ht["link"]==null)ht["link"]="";
if(ht["title"]==null||ht["title"].ToString()=="")ht["title"]=ht["link"].ToString();
if(ht["category"]==null)ht["category"]="";
if(ht["pubdate"]==null)ht["pubdate"]=DateTime.Now.ToString();
if(ht["description"]==null)ht["description"]="";

list.Add(ht);
}

}


publicList<Hashtable>Items
...{
get
...{
returnlist;
}

}


}

使用:

XmlDocumentdoc=RssDoc.GetDoc(url,3,false);

RssDocrssdoc
=newRssDoc(doc);

stringtitle="";
stringlink="";
stringdescription="";
stringcate="";
stringtime="";

foreach(Hashtablehsinrssdoc.Items)
...{
description
=hs["description"].ToString();

title
=hs["title"].ToString();
link
=hs["link"].ToString();

time
=hs["pubdate"].ToString();
cate
=hs["category"].ToString();
}
分享到:
评论

相关推荐

    RSS读取、生成通用类

    1. **RssReader.cs**: 这个类通常包含了读取RSS源的逻辑。它可能提供了方法,如`LoadFromUrl`或`LoadFromFile`,用于从网络地址或本地文件加载RSS feed。该类会解析XML数据,转换成内部表示,以便后续处理。由于声称...

    小型RSS读取,例子

    综上所述,这个“小型RSS读取”示例主要涵盖了HTTP请求、XML解析、数据绑定以及简单的用户交互逻辑。通过学习和实践这个例子,开发者可以更好地理解RSS技术在C#中的应用,并为进一步开发功能丰富的RSS阅读器打下基础...

    php读取rss示例

    php读取rss示例,读取rss中包含的标题和链接

    读取rss依赖lib

    为了在Java环境中读取RSS feed,我们需要依赖一些库来处理RSS XML数据。本篇文章将深入探讨如何在Java项目中使用给定的依赖库,包括`rome.jar`、`jdom-1.0.jar`,以及在WebLogic服务器和Linux 5 x64系统上运行的JDK ...

    JSP读取RSS实例

    在这个实例中,我们看到的是如何使用JSP来读取RSS(Really Simple Syndication)源。 **RSS**是一种XML格式的数据,常用于发布新闻、博客更新等信息,使得用户可以通过RSS阅读器订阅并获取最新内容。RSS文件通常...

    读取RSS-SAX解析XML实例(java版)

    标题"读取RSS-SAX解析XML实例(java版)"所涉及的知识点主要集中在两个方面:一是如何读取RSS(Really Simple Syndication)数据,二是使用SAX解析XML文件。 RSS是一种用于发布新闻、博客和其他定期更新内容的格式...

    读取RSS数据显示在页面上

    2. XML解析:要读取RSS数据,我们需要解析XML文件。在JavaScript中,可以使用DOMParser对象来实现。首先,将RSS feed URL通过AJAX请求获取,然后用DOMParser解析返回的XML字符串。 3. AJAX请求:利用XMLHttpRequest...

    RSS的读取并且显示

    - 读取RSS feed首先需要解析XML文件。在Python中,可以使用`feedparser`库,它能自动处理不同版本和变体的RSS feed。 - 使用`feedparser.parse(url)`方法,传入RSS feed的URL,即可获取到一个解析后的对象,包含了...

    android-rss, 用于读取 RSS 2.0提要部分的轻量级Android库.zip

    android-rss, 用于读取 RSS 2.0提要部分的轻量级Android库 软件包:org.mcsoxford.rss 许可:Apache许可版本 2.0作者: A 描述:用于读取 RSS 2.0提要部分的轻量级Android库。安装添加为 Maven/gradle依赖项: ...

    【ASP.NET编程知识】ASP.NET读取RSS的方法.docx

    ASP.NET 读取 RSS 的方法 ASP.NET 读取 RSS 的方法是指使用 ASP.NET 框架从 RSS 源中提取数据的方法。RSS(Really Simple Syndication)是一种广泛使用的 XML 格式,用于描述和 syndicating 网站的内容。ASP.NET ...

    RSS种子读取资料

    RSS种子读取,频道解析,详细信息读取 根据RSSUrl获取所有List数据(Rome1.0) Rome优点:1.可扩展性好。2.功能强大,除了用来解析RSS,还可以聚合和构造RSS。 Rome缺点:1.兼容性待加强.2.绑定jdom。

    读取RSS资源实例rss_reader

    在Android平台上,RSS(Really Simple Syndication)是一种广泛使用的数据格式,用于订阅和获取网站的最新内容,如新闻、博客文章或播客。本实例"rss_reader"是针对这一功能的实现,它允许用户轻松地浏览和阅读RSS源...

    C# RSS阅读器 能添加和阅读订阅

    这些类可以帮助读取和解析RSS feed的XML数据。开发者需要理解RSS 2.0或Atom等常见规范,以便正确解析和提取信息。在处理RSS feed时,关键步骤包括: 1. 连接到RSS URL:使用HttpClient或WebClient类从网络获取RSS ...

    RSS发布(生成XML)和读取URL

    在描述中提到的“博文链接”,可能是一个详细的教程,讲解如何使用Java来生成RSS XML文件和读取RSS URL。通常,这会涉及到以下几个步骤: 1. **生成RSS XML**:这通常需要使用Java的XML处理库,如JDOM(Java ...

    Windows 8应用商店程序中如何读取rss

    在Windows 8应用商店程序中读取RSS是一项关键技能,特别是在开发新闻聚合或信息更新类应用时。RSS(Really Simple Syndication)是一种订阅和分享网络内容的格式,它允许用户通过阅读器获取网站的更新而无需直接访问...

    javascript读取RSS数据

    ### JavaScript读取RSS数据 #### 知识点概述 在Web开发中,RSS(Really Simple Syndication)是一种常用的格式,用于聚合多个来源的信息并展示在单一的位置。这使得用户能够订阅多个网站的内容,并在一个地方阅读...

    RSS代码RSS 代码RSS 代码RSS 代码

    开发RSS Feed需要对XML和RSS规范有深入理解,使用编程语言(如Python、PHP等)创建XML文件,并遵循RSS 2.0或其他版本的规范。 8. **RSS扩展** 除了基本的RSS 2.0规范,还有许多扩展如iTunes RSS扩展用于播客,...

    android 4种方法完美读取rss xml程序源代码

    本教程将深入探讨四种在Android中读取RSS XML源代码的方法,并提供可直接运行的程序示例。 一、SAX解析器 SAX(Simple API for XML)是一种事件驱动的解析器,它在读取XML文件时触发事件,如开始元素、结束元素等。...

    RSS是RSS的jar包

    - 读取RSS feed:解析XML文档,提取频道信息和条目详情。 - 创建RSS feed:构造RSS结构,添加频道和条目信息,生成XML输出。 - 更新RSS feed:修改现有RSS feed的内容,如添加、删除或更新条目。 - 集成RSS功能:将...

    js JavaScript 解析 rss 实例

    在JavaScript中解析XML文件,可以使用`XMLHttpRequest`对象或者现代浏览器支持的`fetch` API来获取RSS源数据。以下是一个使用`fetch`的例子: ```javascript fetch('http://example.com/rss.xml') .then(response ...

Global site tag (gtag.js) - Google Analytics