教您使用Visual C++制作新闻阅读器

开发 后端
Visual C++大概可以分成三个主要的部分:Developer Studio、MFC和Platform SDK,Visual C++已成为专业程序员进行软件开发的首选工具。

下面向大家介绍下如何用Visual C++进行新闻阅读器的制作和编写,这些内容都是一些门户网站和技术论坛找到的,中间可能有不少错误是我没有挑出的,欢迎大家学习指正。

1、RSS的结构

我们先打开百度新闻一个RSS链接,如果你再多打开几个别的网站的RSS链接,会发现他们都有大致相同的结构。而我们在揭秘RSS(上)中为大家讲解的其实就是编成实现这样的一个XML文件。为了能够方便地对这样的XML文档进行处理,在本文里,我们使用C#作为开发的语言。

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

2、抽取的原理

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

CHANNEL节点又包含多个ITEM子节点,而ITEM节点就是程序需要处理的部分,因为它对应着每条实际的新闻项信息, 每个ITEM节点又通过其子节点提供关于这条新闻的详细信息。

比如title表示新闻的标题(“微软IM称王”),link对应新闻实际的链接。知道了这些后,要编程就不困难啦。我们只需提取并显示出CHANNEL和ITEM下的各条信息就可以了。现在来看看具体的实现方法吧。

二、用Visual C++做个程序读新闻

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

1、定义装载结构

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

  1. public class rss   
  2. {   
  3.  public struct Channel   
  4.  {   
  5.   public string Title;   
  6.   public Hashtable Items;   
  7.  }   
  8.  
  9.  public struct Item   
  10.  {   
  11.   public string Title;   
  12.   public string Description;   
  13.   public string Link;   
  14.  }   

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

【编辑推荐】

  1. 简介学习C++总结之谈
  2. 对C++库函数进行学习探索总结笔记
  3. C++类库设计的基本构思与方法
  4. C++语言真的还有市场价值?
  5. C++类库设计的基本构思与方法
责任编辑:chenqingxiang 来源: wewill.cn
相关推荐

2009-08-25 16:12:46

Visual C#制作

2010-01-21 09:46:24

C++程序

2010-01-14 11:07:59

Visual C++

2010-01-13 18:52:20

Visual C++

2010-10-12 10:10:55

mysql触发器

2010-01-12 18:20:31

Visual C++

2010-01-21 14:51:02

C++函数指针

2022-06-02 14:01:54

屏幕阅读器NVDAWindows

2013-09-02 16:52:31

Windows 8.1

2022-07-20 10:02:34

代码开发阅读

2014-12-03 10:46:15

iReader

2010-09-24 16:52:18

sql DATENAM

2017-04-11 13:31:40

阅读器开源RSS

2010-01-11 13:52:32

Visual C++子

2009-05-05 09:00:48

RSS浏览器

2017-11-21 22:13:52

微软PDFEdge

2024-05-16 13:44:18

2011-09-09 10:19:13

2011-09-15 18:43:00

UbuntuchmPDF

2013-09-02 16:59:34

JavaScriptHTML
点赞
收藏

51CTO技术栈公众号