📄 rssfeed.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Windows.Forms;
namespace NewsReader
{
[Serializable]
public class RssFeed : FeedBase
{
public RssFeed():base(){}
public RssFeed(string displayName, string url):base(displayName,url)
{
base.DisplayName = displayName;
base.Url = url;
}
public RssFeed(string displayName, string url, string descripton, int clicks)
:base(displayName,url,descripton)
{
base.DisplayName = displayName;
base.Url = url;
base.Description = descripton;
base.Clicks = clicks;
}
//继承父类的方法,实现对文章查看
public override void FillArticles()
{
try
{
XmlDataDocument myXml = new XmlDataDocument();
myXml.Load(base.Url); //读取指定的XML文档
XmlNode rootnode = myXml.DocumentElement; //读取XML的根节点
if (rootnode.Name.ToString() != base.Feedtype)
{
MessageBox.Show("XML格式并非RSS格式,请选择正确的XML格式!");
return;
}
XmlNode channel = rootnode.FirstChild;
foreach (XmlNode item in channel.ChildNodes) //对子节点进行循环
{
if (item.Name == "item")
{
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.InnerText; break;
case "description": article.Description = node.InnerText; break;
case "pubDate": 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;
}
}
}
}
catch (Exception ex)
{
Console.Write(ex.ToString());
return;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -