找回密码
 注册
搜索
热搜: 回贴

ASP.net:读取符合RSS2.0规范的XML文档

2009-12-13 13:50| 发布者: admin| 查看: 53| 评论: 0|原作者: 墨元

〖想试着做一个简单的读取RSS新闻的页面 ......


想试着做一个简单的读取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 += "" & newsTitle & "
"
          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

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 17:30 , Processed in 0.190740 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部