• c# 获取Rss数据


     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); }
            
            }
    
        }//
    

      

  • 相关阅读:
    关于敏捷开发方法读后感
    【软件工程结对编程】电梯调度
    最大连续子数组问题2-homework-02
    软件工程个人项目--Word frequency program
    最大连续子数组问题-homework-01
    wangEditor 3 富文本编辑使用-
    docker启动方法,自己备注
    VS2019当前不会命中断点unbound breakpoint
    前端框架记录。
    VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。
  • 原文地址:https://www.cnblogs.com/zhangxin1989/p/2795626.html
Copyright © 2020-2023  润新知