天天看点

续用VB.net做RSS阅读器

继续上次做的RSS阅读器。

<a href="http://www.cnblogs.com/aowind/archive/2005/03/16/119841.html">http://www.cnblogs.com/aowind/archive/2005/03/16/119841.html</a>

这次做成了博客园的专用阅读器了,给左边加上了一个treeview,专门用来显示博客园的分类和博客列表。嘿嘿

下面是新版的图片

上次的源代码已提供出来了

<a href="http://www.cnblogs.com/aowind/archive/2005/03/17/120543.html">http://www.cnblogs.com/aowind/archive/2005/03/17/120543.html</a>

这次就只发一些新增加的内容

首先,要加一个treeview,当然加在哪里自己定了,一般习惯就加在我上图这里了

先给它定义一个根和两个子节点,名字分别是:博客园,博客园分类,博客园列表

下面先来写读博客园分类的过程

续用VB.net做RSS阅读器

'读取博客园分类

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

    Private Sub loadport()Sub loadport()

续用VB.net做RSS阅读器

        Dim i As Integer

续用VB.net做RSS阅读器

        Dim xmlPort As New XmlDocument

续用VB.net做RSS阅读器

        StatusBar1.Text = "正在读取博客园分类信息

续用VB.net做RSS阅读器

"

续用VB.net做RSS阅读器

        xmlPort.Load("http://www.cnblogs.com/CatalogOpml.aspx")

续用VB.net做RSS阅读器

        xmlPort.Save(Application.StartupPath &amp; "~port.xml")

续用VB.net做RSS阅读器

        Dim Portnodelist As XmlNodeList

续用VB.net做RSS阅读器

        Portnodelist = xmlPort.SelectNodes("/opml/body/outline/outline")

续用VB.net做RSS阅读器

        For i = 0 To Portnodelist.Count - 1

续用VB.net做RSS阅读器

            TreeView1.Nodes.Item(0).Nodes.Item(0).Nodes.Add(Portnodelist(i).Attributes.ItemOf("title").InnerText())

续用VB.net做RSS阅读器

        Next

续用VB.net做RSS阅读器

        StatusBar1.Text = "完成"

续用VB.net做RSS阅读器

    End Sub

上次很多东东都没说细,这次说细一点,

接下来存入一个临时文件中以供后面使用

TreeView1.Nodes.Item(0).Nodes.Item(1).Nodes.Add()

这个方法就是给treeview1根节点下面的第一个节点添加子节点了

listnodelist(i).Attributes.ItemOf("title").InnerText()

这个方法是取出XML中这一节点列表中INDEX为I的项的title属性的值

再下来是读取博客列表了,就不用重复说明

续用VB.net做RSS阅读器

    '读取博客列表

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

    Private Sub loadlist()Sub loadlist()

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

        Dim xmlList As New XmlDocument

续用VB.net做RSS阅读器

        StatusBar1.Text = "正在读取博客列表信息

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

        xmlList.Load("http://www.cnblogs.com/Opml.aspx")

续用VB.net做RSS阅读器

        xmlList.Save(Application.StartupPath &amp; "~list.xml")

续用VB.net做RSS阅读器

        Dim listnodelist As XmlNodeList

续用VB.net做RSS阅读器

        listnodelist = xmlList.SelectNodes("/opml/body/outline")

续用VB.net做RSS阅读器

        For i = 0 To listnodelist.Count - 1

续用VB.net做RSS阅读器

            TreeView1.Nodes.Item(0).Nodes.Item(1).Nodes.Add(listnodelist(i).Attributes.ItemOf("title").InnerText())

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

再接下来就是treeview节点的选择事件的处理过程了

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

Private Sub TreeView1_AfterSelect()Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect

续用VB.net做RSS阅读器

        Select Case TreeView1.SelectedNode.Text

续用VB.net做RSS阅读器

            Case "博客园分类"

续用VB.net做RSS阅读器

                loadport()

续用VB.net做RSS阅读器

            Case "博客列表"

续用VB.net做RSS阅读器

                loadlist()

续用VB.net做RSS阅读器

            Case "博客园"

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

            Case Else

续用VB.net做RSS阅读器

                Dim i, j As Integer

续用VB.net做RSS阅读器

                Dim xmltitle As New XmlDocument

续用VB.net做RSS阅读器

                xmltitle.Load(Application.StartupPath &amp; "~port.xml")

续用VB.net做RSS阅读器

                Dim nodelist As XmlNodeList

续用VB.net做RSS阅读器

                nodelist = xmltitle.SelectNodes("/opml/body/outline/outline")

续用VB.net做RSS阅读器

                j = nodelist.Count - 1

续用VB.net做RSS阅读器

                For i = 0 To j

续用VB.net做RSS阅读器

                    If nodelist(i).Attributes.ItemOf("title").InnerText() = TreeView1.SelectedNode.Text Then

续用VB.net做RSS阅读器

                        TextBox1.Text = nodelist(i).Attributes.ItemOf("xmlUrl").InnerText()

续用VB.net做RSS阅读器

                        thread = New Thread(AddressOf loadrss)

续用VB.net做RSS阅读器

                        thread.Start()

续用VB.net做RSS阅读器

                        Exit For

续用VB.net做RSS阅读器

                    End If

续用VB.net做RSS阅读器

                Next

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

                xmltitle.Load(Application.StartupPath &amp; "~list.xml")

续用VB.net做RSS阅读器

                nodelist = xmltitle.SelectNodes("/opml/body/outline")

续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器
续用VB.net做RSS阅读器

        End Select

续用VB.net做RSS阅读器

三个过程,还算清淅了,嘿嘿!这个功能就完成了

当然还能加上别的Opml的导入功能

我这里分类名是死的,其实这些也是可以动态取出来的。