网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
实例:用Visual C#制作新闻阅读器
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

  一、弄清结构再动手

  要想轻松的抽取RSS信息,自然先要了解它的结构,所谓“知己知彼,百战不殆”嘛。 

  1、RSS的结构

  我们先打开百度新闻一个RSS链接,如果你再多打开几个别的网站的RSS链接,会发现他们都有大致相同的结构。而我们在揭秘RSS(上)中为大家讲解的其实就是编成实现这样的一个XML文件。

  为了能够方便地对这样的XML文档进行处理,在本文里,我们使用C#作为开发的语言。

  分析整个RSS链接后,我们知道RSS大致的结构入图1。

 

  2、抽取的原理

  知道了结构,我们还要知道结构中各部分的含义。在图1中RSS节点表示当前是一个RSS文件,它由一个CHANNEL节点及其子节点组成,其中一些子节点提供关于频道本身的信息,比如title表示频道的名称(“百度互联网新闻”)。

  CHANNEL节点又包含多个ITEM子节点,而ITEM节点就是程序需要处理的部分,因为它对应着每条实际的新闻项信息, 每个ITEM节点又通过其子节点提供关于这条新闻的详细信息,比如title表示新闻的标题(“微软IM称王”),link对应新闻实际的链接。

  RSS具体规范可查看http://blogs.law.harvard.edu/tech/rss

  知道了这些后,要编程就不困难啦。我们只需提取并显示出CHANNEL和ITEM下的各条信息就可以了。现在来看看具体的实现方法吧。

  二.做个程序读新闻

  对RSS有一定了解后,我们开始编写程序。先还是需要一个最简单的界面。新建一个Win Form 工程,在Form上放置一个Label,一个文本框txtURL用来输入RSS链接(就是各网站RSS链接中包含的地址),一个按钮bnRead用来执行读取新闻, 一个TreeView树形控件treeRSS显示读出的新闻项。

  1、定义装载结构

  根据上面分析的RSS结构,我们首先来建立一个rss类,用它来装载RSS链接中CHANNEL和ITEM的各条信息。代码如下:

以下是引用片段:
public class rss 

 public struct Channel 
 { 
  public string Title; 
  public Hashtable Items; 
 } 

 public struct Item 
 { 
  public string Title; 
  public string Description; 
  public string Link; 
 } 



  Channel结构将存储CHANNEL节点包含的所有子节点信息,其中Items成员字段是一个Hashtable集合,程序会将Item结构作为对象加入集合,用来存储Channel下的所有Item节点。这里我只读取了有限的几个节点,读者可以根据实际需要扩展整个结构定义。

  2、从RSS链接中获取新闻信息

  现在我们就可以开始编写读取函数,将抽取出的RSS信息放入上面设计好的结构中。

  C#提供了专门的类来访问XML, 使我们能够轻松地读出RSS的内容。代码如下:

以下是引用片段:
XmlTextReader Reader = new XmlTextReader(URL); 
XmlValidatingReader Valid = new XmlValidatingReader(Reader); 
Valid.ValidationType = ValidationType.None; 
XmlDocument xmlDoc= new XmlDocument(); 
xmlDoc.Load(Reader); 

  使用XmlDocument类将txtURL中输入的RSS链接加载后,首先通过FoundChildNode函数,找到Channel节点。

以下是引用片段:
private XmlNode FoundChildNode(XmlNode Node,string Name) 

 XmlNode childlNode = null; 
 for (int i=0;i < Node.ChildNodes.Count;i++) 
 { 
  if ( Node.ChildNodes[i].Name =

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号