源代码如下:

Imports System.Xml 
Imports System.Threading 

Public Class Form1Class Form1 
Inherits System.Windows.Forms.Form 
#Region " Windows 窗体设计器生成的代码 " 

Public Sub New()Sub New() 
MyBase.New() 

'该调用是 Windows 窗体设计器所必需的。 
InitializeComponent() 

'在 InitializeComponent() 调用之后添加任何初始化 

End Sub 

'窗体重写 dispose 以清理组件列表。 
Protected Overloads Overrides Sub Dispose()Sub Dispose(ByVal disposing As Boolean) 
If disposing Then 
If Not (components Is Nothing) Then 
components.Dispose() 
End If 
End If 
MyBase.Dispose(disposing) 
End Sub 

'Windows 窗体设计器所必需的 
Private components As System.ComponentModel.IContainer 

'注意: 以下过程是 Windows 窗体设计器所必需的 
'可以使用 Windows 窗体设计器修改此过程。 
'不要使用代码编辑器修改它。 
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox 
Friend WithEvents Button1 As System.Windows.Forms.Button 
Friend WithEvents AxWebBrowser1 As AxSHDocVw.AxWebBrowser 
Friend WithEvents Label1 As System.Windows.Forms.Label 
Friend WithEvents Label2 As System.Windows.Forms.Label 
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox 
Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar 
Friend WithEvents Label4 As System.Windows.Forms.Label 
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent() 
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1)) 
Me.ListBox1 = New System.Windows.Forms.ListBox 
Me.Button1 = New System.Windows.Forms.Button 
Me.AxWebBrowser1 = New AxSHDocVw.AxWebBrowser 
Me.Label1 = New System.Windows.Forms.Label 
Me.Label2 = New System.Windows.Forms.Label 
Me.TextBox1 = New System.Windows.Forms.TextBox 
Me.StatusBar1 = New System.Windows.Forms.StatusBar 
Me.Label4 = New System.Windows.Forms.Label 
CType(Me.AxWebBrowser1, System.ComponentModel.ISupportInitialize).BeginInit() 
Me.SuspendLayout() 

'ListBox1 

Me.ListBox1.Location = New System.Drawing.Point(0, 67) 
Me.ListBox1.Name = "ListBox1" 
Me.ListBox1.Size = New System.Drawing.Size(727, 108) 
Me.ListBox1.TabIndex = 0 

'Button1 

Me.Button1.Location = New System.Drawing.Point(629, 5) 
Me.Button1.Name = "Button1" 
Me.Button1.Size = New System.Drawing.Size(94, 56) 
Me.Button1.TabIndex = 1 
Me.Button1.Text = "读取" 

'AxWebBrowser1 

Me.AxWebBrowser1.Enabled = True 
Me.AxWebBrowser1.Location = New System.Drawing.Point(-7, 184) 
Me.AxWebBrowser1.OcxState = CType(resources.GetObject("AxWebBrowser1.OcxState"), System.Windows.Forms.AxHost.State) 
Me.AxWebBrowser1.Size = New System.Drawing.Size(727, 480) 
Me.AxWebBrowser1.TabIndex = 2 

'Label1 

Me.Label1.Location = New System.Drawing.Point(0, 26) 
Me.Label1.Name = "Label1" 
Me.Label1.Size = New System.Drawing.Size(624, 15) 
Me.Label1.TabIndex = 3 
Me.Label1.Text = "网站地址:" 

'Label2 

Me.Label2.Location = New System.Drawing.Point(0, 45) 
Me.Label2.Name = "Label2" 
Me.Label2.Size = New System.Drawing.Size(624, 14) 
Me.Label2.TabIndex = 4 
Me.Label2.Text = "网站描述:" 

'TextBox1 

Me.TextBox1.Location = New System.Drawing.Point(72, 0) 
Me.TextBox1.Name = "TextBox1" 
Me.TextBox1.Size = New System.Drawing.Size(552, 20) 
Me.TextBox1.TabIndex = 6 
Me.TextBox1.Text = "Http://Blog.CSDN.Net/AppleBBS/Rss.aspx" 

'StatusBar1 

Me.StatusBar1.Location = New System.Drawing.Point(0, 495) 
Me.StatusBar1.Name = "StatusBar1" 
Me.StatusBar1.Size = New System.Drawing.Size(726, 22) 
Me.StatusBar1.TabIndex = 7 
Me.StatusBar1.Text = "StatusBar1" 

'Label4 

Me.Label4.Location = New System.Drawing.Point(0, 6) 
Me.Label4.Name = "Label4" 
Me.Label4.Size = New System.Drawing.Size(72, 12) 
Me.Label4.TabIndex = 8 
Me.Label4.Text = "RSS地址:" 
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft 

'Form1 

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) 
Me.ClientSize = New System.Drawing.Size(726, 517) 
Me.Controls.Add(Me.Label4) 
Me.Controls.Add(Me.StatusBar1) 
Me.Controls.Add(Me.TextBox1) 
Me.Controls.Add(Me.Label2) 
Me.Controls.Add(Me.Label1) 
Me.Controls.Add(Me.AxWebBrowser1) 
Me.Controls.Add(Me.Button1) 
Me.Controls.Add(Me.ListBox1) 
Me.Name = "Form1" 
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen 
Me.Text = "Easy RSS Reader" 
CType(Me.AxWebBrowser1, System.ComponentModel.ISupportInitialize).EndInit() 
Me.ResumeLayout(False) 

End Sub 

#End Region 
Private thread As Thread '定义一个线程 
Private Sub loadrss()Sub loadrss() '读取RSS文件并取出内容标题的过程 
StatusBar1.Text = "正在读取" & TextBox1.Text & "并效验" 
Me.loadxmltocache(TextBox1.Text) 
StatusBar1.Text = "正在读取相关网站信息" 
Me.loadtitle() 
StatusBar1.Text = "正在读取相RSS内容项" 
Me.loaditem() 
StatusBar1.Text = "完成" 
End Sub 

Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
Try 
thread = New Thread(AddressOf loadrss) 
thread.Start() 
Catch ex As Exception 
MsgBox(ex.ToString) 
End Try 
End Sub 

Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
AxWebBrowser1.Width = Me.Width 
StatusBar1.Text = "就绪" 
End Sub 
Private Sub loadxmltocache()Sub loadxmltocache(ByVal URL As String) 
'读取RSS文件并存放在本地以供操作 
Dim xmldocument As New XmlDocument 
xmldocument.Load(URL) 
xmldocument.Save(Application.StartupPath & "~doc.xml") 
End Sub 
Private Sub loadtitle()Sub loadtitle() 
'从本地文件中进行操作,读取RSS中有关网站的信息 
Dim xmlDocument As New XmlDocument 
xmlDocument.Load(Application.StartupPath & "~doc.xml") 
Dim mynodelist As XmlNodeList 
mynodelist = xmlDocument.SelectNodes("/rss/channel") 
Label1.Text = "网站:" & Trim(mynodelist(0).Item("title").InnerText()) 
Label2.Text = "描述:" & Trim(mynodelist(0).Item("description").InnerText()) 
End Sub 
Private Sub loaditem()Sub loaditem() 
'从本地文件中进行操作,读取RSS中内容的标题及作者 
Dim xmlDocument As New XmlDocument 
xmlDocument.Load(Application.StartupPath & "~doc.xml") 
Dim mynodelist As XmlNodeList 
mynodelist = xmlDocument.SelectNodes("/rss/channel/item") 
ListBox1.Items.Clear() 
Dim i As Integer 
For i = 0 To mynodelist.Count - 1 
ListBox1.Items.Add("[" & Trim(mynodelist(i).Item("dc:creator").InnerText()) & "]" & Trim(mynodelist(i).Item("title").InnerText())) 
Next 
End Sub 

Private Sub ListBox1_SelectedIndexChanged()Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged 
thread = New Thread(AddressOf loadhtml) 
thread.Start() 
End Sub 
Private Sub loadhtml()Sub loadhtml() 
'读取RSS中对应文件的内容并存到临时文件后显示 
Dim xmlDocument As New XmlDocument 
xmlDocument.Load(Application.StartupPath & "~doc.xml") 
Dim mynodelist As XmlNodeList 
mynodelist = xmlDocument.SelectNodes("/rss/channel/item") 
Dim i As Integer 
Dim j As Boolean 
Dim content As String 
StatusBar1.Text = "正在读取文章内容" 
For i = 0 To mynodelist.Count - 1 
If ListBox1.SelectedItem = "[" & Trim(mynodelist(i).Item("dc:creator").InnerText()) & "]" & Trim(mynodelist(i).Item("title").InnerText()) Then 
content = content & "<html><head><meta http-equiv='content-type' content='text/html;charset=UTF-8'></head><body leftmargin='5' topmargin='0' rightmargin='0'>" 
content = content & "<table width='100%' height='80' bgcolor='#eeeeee'><tr><td><b>标题:</b><a href='" 
content = content & Trim(mynodelist(i).Item("link").InnerText()) 
content = content & "'>" 
content = content & Trim(mynodelist(i).Item("title").InnerText()) 
content = content & "</a><br><b>作者:</b>" 
content = content & Trim(mynodelist(i).Item("dc:creator").InnerText()) 
content = content & "<br><b>日期:</b>" 
content = content & Trim(mynodelist(i).Item("pubDate").InnerText()) 
content = content & "</td></tr></table><table><tr><td><b>摘要:</b>" 
content = content & formatHtml(mynodelist(i).Item("description").InnerText()) 
content = content & "</td></tr></table></body></html>" 
j = SaveTextFile(Application.StartupPath & "~temp.html", content) 
AxWebBrowser1.Navigate(Application.StartupPath & "~temp.html") 
Exit For 
End If 
Next 
StatusBar1.Text = "完成" 
End Sub 
'写文件的过程 
Function SaveTextFile()Function SaveTextFile(ByVal FilePath As String, ByVal FileContent As String) As Boolean 
Dim sw As System.IO.StreamWriter 
Try 
sw = New System.IO.StreamWriter(FilePath, False) 
sw.Write(FileContent) 
Return True 
Catch e As Exception 
Return False 
Finally 
If Not sw Is Nothing Then sw.Close() 
End Try 
End Function 
'从地址里取网址的函数 
Private Function formatURL()Function formatURL(ByVal str As String) As String 
Dim sStr As String 
Dim i As Integer 
Dim j As Integer 
For i = 1 To Len(str) 
sStr = sStr & Mid(str, i, 1) 
If Mid(str, i, 1) = "/" Then 
j += 1 
End If 
If j = 3 Then Exit For 
Next 
Return sStr 
End Function 
'将内容里的相对图片地址改成绝对地址的函数 
Private Function formatHtml()Function formatHtml(ByVal str As String) As String 
Return Replace(str, "src=" & Chr(34) & "/", "src =" & Chr(34) & formatURL(TextBox1.Text)) 
End Function 

Private Sub TextBox1_Enter()Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter 
Try 
thread = New Thread(AddressOf loadrss) 
thread.Start() 
Catch ex As Exception 
MsgBox(ex.ToString) 
End Try 
End Sub 
End Class


转自: http://www.cnblogs.com/aowind/archive/2005/03/16/119838.html

转载于:https://www.cnblogs.com/Dicky/archive/2005/03/17/122365.html

用VB.NET写的一个简易的RSS阅读器相关推荐

  1. 用vb.net写一个简易的RSS阅读器

    先发一个做出来的效果图 哈哈!怎么样?对了DUDU,我这个还解决了看天下那个阅读器不能正常显示相对路径的图片的问题哟! 现在不管相对的还是绝对的路径的图片都能正常显示哈! 下面是源代码,没有太多注释, ...

  2. vb.net写一个简易的RSS阅读器

    十分简易哈!解决了相对图片路径不能正常显示! 可用于博客园 全文点击 http://www.cnblogs.com/aowind/archive/2005/03/16/119838.html

  3. WCF+Silverlight一个简单的RSS阅读器(二)

    嘿嘿,坚持不懈,继续我的Silverlight之旅,创建了WCF服务,我们需要的是通过Silverlight能够应用这个服务, 比起2005,2008的服务引用做的好多了,上图: 通过右边的Disco ...

  4. HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌)

    用HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌) 效果如下:(鼠标点击按钮可以实现播放或暂停,按钮会旋转,实现了歌词同步,功能还需改进) 代码如下: <!DOCTYPE htm ...

  5. python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器

    用Python写一个简易的MP3播放器 前言 最近在学习Web.py框架的时候,了解了基本的Python连接数据库(MySQL)的方法.学完后,总想用它来干点啥,于是,就想能不能写一个MP3播放器.一 ...

  6. C++小游戏扫雷——如何写出一个简易的扫雷

    C++小游戏扫雷--如何写出一个简易的扫雷 其实很简单,但是这段代码不知道是否有BUG,有的话可以提出,谢谢大家. all.h函数库 #include "all.h" using ...

  7. 用python写了一个简易的记账软件,后期有可能更新

    用python写了一个简易的记账软件,后期有可能更新 记账程序由来 程序介绍 模块 数据写入 gui图形化界面 关于输入空值 新建工作簿 完整代码 记账程序由来 曾经在iOS14的快截指令中写了一个快 ...

  8. Python:通过网络爬虫实现一个简易控制台音乐播放器

    hello,大家好,我是wangzirui32,今天我们来学习如何通过网络爬虫实现一个简易控制台音乐播放器,开始学习吧! 1. 项目结构及库准备 app.py为项目入口程序,download.py为音 ...

  9. 通过rss阅读器写blog

    现在的rss阅读器主要是用来阅读rss的内容,比如我用的新浪点点通,现在已经习惯了通过rss来阅读,可是不能够通过rss来写blog,要不就是通过rss自带的web浏览器,相当于还是用web在线的方式 ...

最新文章

  1. 给每个函数写一个记录日志的功能.
  2. python哪本好-最好的Python入门教材是哪本?
  3. ecshop 整合 QQ登陆 和 支付宝快捷登陆代码
  4. oracle会话资源,oracle session 会话
  5. mysql重新构建自增长_mysql 建表后 重新构建 自增字段 (保留 原有字段结构)
  6. SAP License:SAP概念辨识
  7. 一个点击icon就生成html和css的网页
  8. 计算机专业中专自我鉴定范文,计算机专业中专生自我鉴定范文
  9. windows 2003与windows 2008区别之AD DS篇
  10. java.util.BitSet 研究
  11. 智慧小区智能安防设计方案
  12. 【Android工具】更新wifi分析仪,wifi信道信息查看工具,wifi分析仪3.10.6L
  13. PB程序中在普通激光打印机上实现条码打印
  14. 南通大学计算机专业校区,南通大学计算机科学与技术专业
  15. 树莓派有线网络设置_树莓派的基本网络配置
  16. 把平板、手机作为电脑第二屏幕(Linux系统下)
  17. php干啥,php是什么意思?php能干啥?
  18. 7-17 爬动的蠕虫
  19. 笨方法学python 习题29-31
  20. Microsoft Academic Search 微软学术搜索体验

热门文章

  1. 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目
  2. BasicRF学习心得
  3. 网页服务器磁盘满了怎么办,远程服务器磁盘满了怎么办
  4. Ubuntu折腾记录
  5. 【Java进阶营】什么是真正的架构设计?某厂十年Java经验让我总结出了这些,不愧是我
  6. [技术发展-24]:现有物联网通信技术特点
  7. 工业物联网有什么特征
  8. K8s Kubectl基础命令的使用、滚动更新、以及回滚操作
  9. NSGA3算法及其MATLAB版本实现(转载)
  10. abb机器人码垛编程详解_ABB机器人码垛编程方法与技巧