`
阿尔萨斯
  • 浏览: 4170735 次
社区版块
存档分类
最新评论

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

 
阅读更多
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();
}
分享到:
评论

相关推荐

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

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

    ASP.NET RSS工具包

    ASP.NET RSS工具包 可以很好的集成到.net中 方便地读取rss

    ASP.NET读取RSS的方法

    主要介绍了ASP.NET读取RSS的方法,非常实用的技巧,需要的朋友可以参考下

    .net读取Rss转换为DataTable

    所以写了一个通用的读取Rss的代码,以后即时再增加或者删除Items中的子项,此代码也是可以辨认的。嗯……贴代码,记录一下吧。 代码如下:读取Rss返回DataTable///  /// 获Rss并转换为DataTable返回 ///  /// ”...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions ...ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#]...

    网页获取RSS测试用例

    网页读取RSS查询关键词结果,内含.NET怎样获取RSS的结果

    C# VB .NET实现线性条码、条形码、QR二维码的读取和生成创建

    3、支持Code93,Code129,PDF417,Rss14,GS1,UPC-A,UPC-E,EAN-8,EAN-13,Codabar,ITF,MSI,Plessey等; 4、不仅可以读取条码,也支持将自定义数据生成条形码和QR二维码。 5、简单易用,只需一行代码即可完成读写,上手迅速...

    asp.net(c#) RSS功能实现代码

     以下是我RSS界面的后台代码,给需要的朋友提供下我的经验: 代码如下:using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web....

    亮剑.NET深入体验与实战精要2

    2.12 Debug版本和Release版本的 区别 108 本章常见技术面试题 111 常见面试技巧之细节决定成败 111 本章小结 112 第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 ...

    亮剑.NET深入体验与实战精要3

    2.12 Debug版本和Release版本的 区别 108 本章常见技术面试题 111 常见面试技巧之细节决定成败 111 本章小结 112 第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 ...

    ASP.NET3.5典型模块开发源代码

    9.4.2 支持上传文件的实时进度条 117 9.5 小结 118 第10章 图文验证模块 119 10.1 概述 119 10.1.1 验证码的作用 119 10.1.2 验证码的原理 119 10.1.3 比较常见的几种验证 方式 120 10.2 最简单的...

    ASP.net实例光盘源码:

    RSS/Portal/SampleRSS.aspx 创建简单RSS页面 RSS/Portal/UpdateUrl.aspx 修改链接 RSS/Portal/UrlManage.aspx 链接管理 RSS/Portal/ViewRSS.aspx 查看RSS页面内容 RSS/UserControl/Header....

    C# VB .NET中条码识别读取条形码QR二维码生成和创建条码二维码生成的源码

    C#编写的实现条形码和QR二维码读取和生成的类库。支持读取QR Code,Aztec Code,Data Matrix,MaxiCode,USPS ...SharpBarcode也支持Code93,Code129,PDF417,Rss14,GS1,UPC-A,UPC-E,EAN-8,EAN-13,Codabar,ITF,MSI,Plessey等

    用PHP读取RSS feed的代码

    而助易网的rss读取就是在这个程序的基础上稍做改造而成,主 要是输出了一个数组字符串以及解决编码问题。 php源代码及代码详细解释如下: &lt;?php //RSS源地址列表数组 $rssfeed = array(...

    ZXing.Net:原始的基于Java的条形码读取器和生成器库的.Net端口Zxing

    解码器支持以下条形码:UPC-A,UPC-E,EAN-8,EAN-13,Code 39,Code 93,Code 128,ITF,Codabar,MSI,RSS-14(所有变体),QR Code ,Data Matrix,Aztec和PDF-417。 编码器支持以下格式:UPC-A,EAN-8,EAN-13...

    RSSMaker_asp

    RSSMaker v1.2 (ASP版)--帮助您的网站实现RSS订阅功能 ... 雅客网是专业的集RSS订阅、RSS源共享、制作和发布的平台。 雅客网旨在提供全面的...5. 欢迎程序爱好者们提供您开发的版本(各种语言:ASP\PHP\ASP.net\JSP等)。

    c#简单的在线阅读器—RSS

    这是在学校做的.net平台~C#项目,,,用来读取RSS及浏览网址

Global site tag (gtag.js) - Google Analytics