⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atomfeed.cs

📁 可以收藏RSS和ATOM格式新闻频道,还可以收藏常用的html格式的网址;可以在新闻快客的地址栏直接输入任何网址浏览网页官方网址:http://t811.uu1001.com
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Windows.Forms;

namespace NewsReader
{
    [Serializable]
    public class AtomFeed : FeedBase
    {
        public AtomFeed():base(){}
        public AtomFeed(string displayName, string url) : base(displayName,url)
        {
            base.DisplayName = displayName;
            base.Url = url;
        }

        public AtomFeed(string displayName, string url, string description, int clicks)
            : base(displayName, url, description)
        {
            base.DisplayName = displayName;
            base.Url = url;
            base.Description = description;
            base.Clicks = clicks;
        }
               
        //继承父类的方法,实现对文章查看
        public override void FillArticles()
        {
            XmlDataDocument myXml = new XmlDataDocument();
            myXml.Load(base.Url);                                //读取指定的XML文档
            XmlNode rootnode = myXml.DocumentElement;           //读取XML的根节点

            if (rootnode.Name.ToString() != base.Feedtype)
            {
                MessageBox.Show("XML格式并非ATOM格式,请选择正确的XML格式!");
                return;
            }
            foreach (XmlNode item in rootnode.ChildNodes)        //对子节点进行循环
            {
                if (item.Name == "entry")
                {
                    Article article = new Article();
                    foreach(XmlNode node in item.ChildNodes )       //对子节点进行循环
                    {
                        //将每个节点的内容读到articles象中
                        switch (node.Name)
                        {
                            case "title": article.Title = node.InnerText; break;//标题
                            case "link": article.Url = node.Attributes["href"].Value.ToString(); break;
                            case "summary": article.Description = node.InnerText; break;//描述
                            case "issued": article.PubDate = node.InnerText; break;//发布时间
                        }

                    }
                    article.Clicks = base.Clicks;
                    article.Feedtype = "html";
                    try
                    {
                        if (article.Title != null)
                        {
                            base.Articles.Add(article.Title, article);//将Article对象添加到Articles集合中
                        }
                    }
                    catch (Exception)
                    {
                        return;
                    }
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -