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
查看全文
相关阅读:
数据库(六)
数据库(五)
数据库(四)
数据库(三)
数据库(二)
数据库
函数 枚举和递归
数据类型(四) 集合
数据库基础
特殊集合 结构体
原文地址:https://www.cnblogs.com/Dicky/p/122365.html
最新文章
....
运行代码
博客一些特效
2016总结-->生活不只有技术和代码,还有诗和远方的田野。
为什么不用rxjava?
xutils注意事项
canvas.drawBitmap()频繁调用导致应用崩溃问题
View绘制机制
深夜用git真是醉了
3、JS中的语句
热门文章
2、JS中的表达式和运算符
1、JS的数据类型
1、c#对XML文件的解析
1、webservice的简单使用
18、SQL提高篇(变量的使用 拓展)
1、datatable与datagrid之间的绑定
16、(番外)关于递归的再次整理
工作笔记1
数据库(八)
数据库(七)
Copyright © 2011-2022 走看看