资源介绍
新浪阅读器总结
一:综述
在新浪阅读器中,我首次学到了RSS(Rich Site Summary)或(Really Simple Syndication)中文名称:建议信息聚合。RSS是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。
二:项目实现的成果和代码。
再这里面,我首先对xml文件中的内容进行总结:
1:如何加载xml文件(两种方法)
A:通过打开文件对话框来打开(openfiledialog)
if (openFileDialog1 .ShowDialog()==DialogResult .OK )
{
String strFileName = openFileDialog1.FileName;
//加载xml文件
XmlDocument doc = new XmlDocument();
doc.Load(strFileName );
}
B:文件的路径是web地址
//加载xml文件
XmlDocument doc = new XmlDocument();
//文件路径可以是web地址............
doc.Load("http://rss.sina.com.cn/news/marquee/ddt.xml");
2:如何获取xml的内容
获取单一节点的内容(SelectSingleNode)
XmlNode node = doc.SelectSingleNode("rss/channel/title");
获取多个节点的内容(SelectNodes)
XmlNodeList list = doc.SelectNodes("rss/channel/item");
3:获取属性值(Attributes ["version"].Value)
//获取属性(根节点)
XmlNode root = doc.SelectSingleNode("rss");
MessageBox.Show(root .Attributes ["version"].Value );
4:获取text的内容
String title = itemlist[i].SelectSingleNode("title").InnerText;
下面对界面中学到的内容做个总结:
1:Treeview的afterselect事件
当点击treeview里面的频道信息时,加载右面的listview里面内容
如何往listview里面添加列(("日期", 100)日期表示列名,100表示列所占的长度):
lv.Columns.Add("日期", 100);
lv.Columns.Add("标题", 400);
lv.Columns.Add("作者", 100);
将更新时间进行格式化;
pubdate = Convert.ToDateTime(pubdate).ToString("yyy-mm-dd HH:mm:ss");
向listview添加行内容的时候要注意第一个用lvi.text后面都用lvi.subitems.add
如下;
lvi.Text = pubdate;
lvi.SubItems.Add(title);
lvi.SubItems.Add(author);
lvi.Tag = link;//存储超链接
2:在treeview加载频道的信息(基本的格式)
首先获取频道的分类:
XmlNodeList channelclasslist = doc.SelectNodes("opml/body/outline");
得到频道数;
ChannelClassCount = channelclasslist.Count;
通过循环来添加treeview的节点(下面的是一级节点)
for (int i = 0; i < channelclasslist.Count;i++ )
{ //增加treeview的一级节点
TreeNode tnchannelclass = new TreeNode();
tnchannelclass .Text =channelclasslist [i ].Attributes ["text"].Value.Replace ("-新浪RSS","") ;
tnchannelclass.Tag ="0";
tvlist.Nodes.Add(tnchannelclass );
3:如何将全屏显示(两种方法):
A:使用全局变量(省略一部分代码)
private bool isfullscreen = false;
private void toolStripButton15_Click(object sender, EventArgs e)
{
if (isfullscreen ==false )
{
isfullscreen = true;
panel1.Visible = false;
}
else //与上面情况相反
{
isfullscreen = false ;
panel1.Visible = true ;
}
B:当前界面的显示情况与当前完全相反
是在全屏按钮事件下:
panel1.Visible = !panel1.Visible;
4:listview下面的内容:
A:属性:Mulit select(允许选择多项)
FullRowSelect(选中整行)
该listview没有默认的图片,在imagelist里面可以选择图片
B:事件(lv_SelectedIndexChanged)选择之后改变的事件
这里面当选中listview中的内容,在下面的web中加载信息
5:缓存
在新浪阅读其中还加了一个缓存:
缓存就是当选中treeview节点时,访问缓存(url)判断是否有xml数据,这面分两种情况,当无缓存时,我们在这面要第一次读取,读取完将xml数据写入缓存并记录当前的读取时间,显示xml数据。当有缓存时,判断时间是否超时,如果已经超时,从网络中重新读取,读取完将xml数据写入缓存并记录当前的读取时间,显示xml数据。未超时的话,获取缓存中的数据显示。
- 上一篇: cfa二级金程付费内部资料
- 下一篇: PMP Mock Exams -1