c# 获取Rss数据
2012-11-30 08:18
302 查看
public class Channel { private string _title; private string _link; private string _description; private List<Item> items = new List<Item>(); #region 属性 /**//// <summary> /// 标题 /// </summary> public string title { get{return _title;} set{_title = value.ToString();} } /**//// <summary> /// 链接 /// </summary> public string link { get{return _link;} set{_link = value.ToString();} } /**//// <summary> /// 描述 /// </summary> public string description { get{return _description;} set{_description = value.ToString();} } public List <Item > Items { get { return items; } } #endregion public Channel(){} }//
public class Feed { private string _url; private System.DateTime _lastModified; private System.DateTime _lastRssDate; private Channel channel = new Channel(); #region 公共属性 public string url { get{return _url;} set{_url=value;} } public System.DateTime lastModified { get{return _lastModified;} } public System.DateTime lstRssDate { set{_lastRssDate=value;} } public Channel Channel { get { return channel; } } #endregion public Feed() { } public Feed(string url,System.DateTime dt) { this._url=url; this._lastRssDate=dt; } public void Read() { XmlDocument xDoc=new XmlDocument(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url); request.Timeout=15000; request.UserAgent=@"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.40607; .NET CLR 1.1.4322)"; Stream stream; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); this._lastModified = response.LastModified; stream = response.GetResponseStream(); StreamReader sr; //System.Xml.XmlReader = new XmlReader(); //stream=Encoding.Convert(Encoding.GetEncoding("GBK"),Encoding.GetEncoding("gb2312"),Convert.ToSByte(stream)); if(this.Get_CH(response.Headers["Content-Type"].ToString())=="GBK") { sr= new StreamReader(stream,System.Text.Encoding.GetEncoding("GB2312")); xDoc.Load(sr); } else { // sr= new StreamReader(stream,System.Text.Encoding.UTF8); xDoc.Load(stream); } if(this._lastRssDate<this._lastModified) { XmlNodeList xnList=xDoc.DocumentElement["channel"].SelectNodes("item"); // XmlNodeList xnList=xDoc.SelectNodes("items"); int a= xnList.Count; foreach(XmlNode xNode in xnList) { Item rt=new Item(); rt.title=xNode.SelectSingleNode("title").InnerText.Replace("'","''"); rt.link=xNode.SelectSingleNode("link").InnerText.Replace("'","''"); try { rt.description = xNode.SelectSingleNode("description").InnerText.Replace("'", "''"); } catch { } try { rt.pubDate=xNode.SelectSingleNode("pubDate").InnerText; } catch { rt.pubDate=this._lastModified.ToString(); } channel.Items.Add(rt); } } } public string Create() { return ""; } private string Get_CH(string s) { int l=s.IndexOf("charset=")+8; return s.Substring(l,s.Length-l); } }//
public class Item { private string _title=""; private string _link=""; private string _description=""; private string _pubDate=""; #region 属性 /**//// <summary> /// 标题 /// </summary> public string title { get{ if (_title.Length > 21) { return _title.Substring(0, 21)+"..."; } else {return _title; } } set{ _title=value.ToString();} } /**//// <summary> /// 链接 /// </summary> public string link { get{return _link;} set{_link=value.ToString();} } /**//// <summary> /// 描述 /// </summary> public string description { get{return _description;} set { if (value != null) { _description = value; } else { _description = ""; } } } /**//// <summary> /// 频道内容发布日期 /// </summary> public string pubDate { get{return _pubDate;} set{_pubDate=C_Date(value);} } #endregion public Item(){} private string C_Date(string input) { System.DateTime dt; try { dt=Convert.ToDateTime(input); } catch { dt=System.DateTime.Now; } return dt.ToString(); } string GetDate(DateTime dt) { string House = dt.ToString("HH"); int hour = int.Parse(House); int mine = dt.Minute; int second = dt.Second; string AP = ""; if(hour >12) { AP="下午"; hour = hour - 12; } else {AP="上午";} return string.Format("{0} {1} {2}", dt.ToString ("yyyy/MM/dd"),AP,hour +":"+mine +":"+second ); } public string DateString { get { DateTime time = Convert.ToDateTime(pubDate); return GetDate(time); } } public DateTime PuDate { get { return Convert.ToDateTime(pubDate); } } }//
相关文章推荐
- C# Rss 操作类 C#获取Rss数据 C#生成Rss文件
- C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市
- C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法
- C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市
- C# 获取ListView中选中行中对应的列数据
- SerialPort访问COM接口获取电子秤数据(C#)
- 使用C#抓取网页内容并分析获取数据
- c# 无法获取sybase中Text类型数据
- C#获取EXCEL中的数据
- C#从剪贴板中获取数据
- C# 语言如何获取json格式的数据,不用javascript用c#实现。。。
- C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
- jQuery 获取跨域XML(RSS)数据的相关总结分析
- C#中联查的简单方法(如从数据库中获取到数据放到excel表中)
- jQuery 获取跨域XML(RSS)数据的相关总结分析
- C# 通过代理获取url数据
- C#.NET 权限管理系统组件 - 大数据只获取更新部分数据列的标准例子
- 在C#中使用WIA获取扫描仪数据(二、WIA Automation Layer)
- 在C#中使用正则表达式自动匹配并获取所需要的数据
- C# Winform中无焦点状态下获取键盘输入或者USB扫描枪数据