小新的技术天地

Make It Works !

博客园 首页 新随笔 联系 订阅 管理

在项目文件中,我们可以看到有一个Rss文件夹,里面有三个文件,保存有三个类,分别是RssChannelRssFeedRssItem

 

通过查看代码,我们可以了解到,基本数据流程是这样的,首先从网络上的Rss2.0 XML文件得到XML格式的数据,然后使用XML命名空间中的相关类进行解析,提取出我们所需要的数据保存在内存中。

 

首先我们考察RssFeed类,它的类结构是这样的:
rssfeed.jpg

其中有三个方法,使用了factory pattern 。(关于这个模式,请参考吕老师相关文章

RssFeed的方法摘要为Private constructor to be used with factory pattern.  (即为工厂模式提供构造器)

FromUriFromText为两个工厂。

FromUri的摘要为Factory that constructs RSSFeed objects from a uri pointing to a valid RSS 2.0 XML file.(从一个指向RSS2.0 XML文件的uri取得一个RSSFeed对象)

FromText摘要为Factory that constructs RssFeed objects from the text of an RSS 2.0 XML file.(从一个RSS2.0 XML文件取得一个RssFeed对象)

工厂取得RssFeed对象以后就使用对象构造器(即RssFeed()方法)进行构造,取出里面的channel节点构造RssChannel对象,然后加入到一个使用了泛型的List<RssChannel>

 

再考察RssChannel类的类结构如下:
rsschannel.jpg

类很简单,RssChannel的构造器从RssFeed获得了channel节点的对象以后,进一步解析出里面的Item对象,使用RssItem进行构造,添加进一个List<RssItem>

 

然后我们考察RssItem类,结构如下:

rssItem.jpg

查看代码,我们可以看到这个类实现了一个IItem接口,关于这个接口以后再介绍。

这个类的构造器就是从RssChannel传递来的RssItem对象中取出我们需要的数据:Titledescriptionlink

 

这三个类的处理流程就是这样,不算复杂,处理其他类型的XML文件也可以借鉴参考。

posted on 2005-12-03 15:13  小新0574  阅读(2044)  评论(4编辑  收藏  举报