用Visual C#制作新闻阅读器
http://tech.ddvip.com 2007年04月09日 社区交流
本文详细介绍用Visual C#制作新闻阅读器
然后我们就可以遍历它的子节点,根据子节点的Name属性,读取我们需要的信息。
rss.Channel channel=new rss.Channel();
channel.Items=new Hashtable();
{
switch ( channelNode.ChildNodes[i].Name )
{
case "title":
{
channel.Title = channelNode.ChildNodes[i].InnerText;
break;
}
case "item":
{
rss.Item item=this.getRssItem(channelNode.ChildNodes[i]);
channel.Items.Add(channel.Items.Count,item );
break;
}
}
}如果发现是item子节点,就调用getRssItem函数,同样通过遍历子节点的方法,将其子节点内容填入Item结构中,然后再添加到Channel结构的Items集合中。因为本程序并不关心添加到集合的键值,只需要它是不重复的值,所以我传入了Count属性。
3.将读出的信息显示在程序中
将RSS内容读出后,就需要把信息展示给用户了。我们这里用的是基本的TreeView方法,通过遍历Channel结构的Items集合,将其标题添加到TreeView中。
private void ViewRss(rss.Channel channel)
{
treeRss.BeginUpdate();
treeRss.Nodes.Clear();
TreeNode channelNode=treeRss.Nodes.Add(channel.Title );
channelNode.Tag="";
for (int i=0;i <channel.Items.Count ;i++)
{
rss.Item item=(rss.Item)channel.Items[i];
TreeNode itemNode=channelNode.Nodes.Add(item.Title );
itemNode.Tag=item.Link;
}
treeRss.ExpandAll();
treeRss.EndUpdate();
}同时我们还可以设置TreeView的每个子节点的Tag属性为它对应的链接。以便当选中子节点时就可以通过读取Tag属性访问具体的信息。
private void treeRss_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
TreeNode itemNode=e.Node ;
string URL=itemNode.Tag.ToString();
if (URL.Length!=0)
System.Diagnostics.Process.Start( URL);
}程序运行效果如图2。

三.小结
怎么样,一个简单的RSS新闻阅读器就按前面所说轻松完成了,容易吧。虽然它还有很多不足,但如果大家通过这个例子学会了抽取RSS链接信息的基本方法,那就足够了!
责编:豆豆技术应用
正在加载评论...