📄 atomfeed.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 + -