zoukankan
html css js c++ java
用VB.NET写的一个简易的RSS阅读器
源代码如下:
Imports
System.Xml
Imports
System.Threading
Public
Class Form1
Class
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
青苹果Web应用商店
https://webapp.taobao.com/
PHP/ASP.NET/ASP/UCHOME/DISCUZ! X系列网站开发,详细需求联系
QQ:8511978
查看全文
相关阅读:
子序列自动机学习笔记
P4709 信息传递 解题报告
斯坦纳树学习笔记
NOIP2021 游记
P5206 [WC2019]数树 解题报告
CF1205D Almost All 解题报告
设计模式原来如此策略模式(Strategy Pattern)
再次站起,继续开博
Java原来如此反射机制
Java原来如此随机数
原文地址:https://www.cnblogs.com/Dicky/p/122365.html
最新文章
单击复制文字兼容各浏览器
indexOf用法。
把input初始值不写value
安装包自定义操作参数传递
ManualResetEvent和AutoResetEvent
一句话解决DataReader无法关闭连接
Devexpress XtraReport 打印时弹出Margins提示
命令行下执行SQL语句 (ISQL或OSQL)
标准表达式中数据类型不匹配(Access) 参数化顺序必须一致!
解决 DevExpress GridControl 数据编辑后无法保存
热门文章
BCP命令导入导出数据库数据
教你如何创建相对路径快捷方式
将软件显示到最前面或最后面
远程服务调用(RMI)
服务(Service)
部署
关于flying框架
数据访问(DAO)
本地服务调用
Pupil 计划试题乱做 Part 1
Copyright © 2011-2022 走看看