网友俱乐部 » » XML教程 » 读取符合RSS2.0规范的XML文档

2007-11-26 16:28 ljjk5
读取符合RSS2.0规范的XML文档

[table][tr][td]
[/td][/tr][/table]想试着做一个简单的读取RSS新闻的页面 虽然将.net中关于XML的几个类看了个遍
但还是不太懂
这是我写的一个读取XML文档的函数
直接在设计页面中调用就行

Public Function LoadRSS(ByVal RssUrl As String, ByVal showNewsCount As Integer) As String
        Try
            '读取xml文档
            Dim objXMLDoc As New System.Xml.XmlDocument()
            Dim strNodes As String = ""
            Dim objItems As System.Xml.XmlNodeList
            Dim objItems1 As System.Xml.XmlNodeList
            Dim objNode As System.Xml.XmlNode
            Dim objNode1 As System.Xml.XmlNode
            Dim i As Integer
            Dim newsTitle As String
            Dim newsUrl As String
            Dim newsDescription As String
            Dim newsPubDate As String
            Dim newsAuthor As String
            Dim newsCategory As String
            objXMLDoc.Load(RssUrl)
            objItems = objXMLDoc.GetElementsByTagName("item")
            If RssUrl = "" Then
                RSSNews = "未找到信息源,您可刷新重试或联系管理员!"
                Exit Function
            End If
            If CStr(showNewsCount) = "" Or showNewsCount > 30 Then
                showNewsCount = 10        '默认新闻显示数目
            End If
            If showNewsCount = 0 Then
                showNewsCount = objItems.Count
            End If
            If objXMLDoc.HasChildNodes = True Then
                i = 1
                For Each objNode In objItems
                    If objNode.HasChildNodes = True Then
                        objItems1 = objNode.ChildNodes
                        For Each objNode1 In objItems1
                            Select Case objNode1.Name
                                Case "title"
                                    newsTitle = objNode1.InnerText
                                Case "link"
                                    newsUrl = objNode1.InnerText
                                Case "description"
                                    newsDescription = objNode1.InnerText
                                    If Len(newsDescription) > 500 Then
                                        newsDescription = Left(newsDescription, 200)
                                    End If
                                    newsDescription = FilterHtml(newsDescription)
                               Case "category"
                                    newsCategory = objNode1.InnerText
                                Case "author"
                                    newsAuthor = objNode1.InnerText
                                Case "pubDate"
                                    newsPubDate = objNode1.InnerText
                            End Select

                        Next
                        strNodes += "<a href=viewnews.aspx?newstitle=" & Server.UrlEncode(newsTitle) & "&newsurl=" & Server.UrlEncode(newsUrl) & _
                                    "&newsdscrp=" & Server.UrlEncode(newsDescription) & "&newscat=" & Server.UrlEncode(newsCategory) & _
                                    "&newsauthor=" & Server.UrlEncode(newsAuthor) & "&newsdate=" & Server.UrlEncode(newsPubDate) & _
                                    " target=_blank>" & newsTitle & "</a><br>"
                    End If
                    i = i + 1
                    If i > showNewsCount Then Exit For
                Next
            End If
            LoadRSS = strNodes

        Catch objErr As Exception
            LoadRSS = "RSS Feed 源数据出错!"
        End Try
    End Function

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.