广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    ASP.NET RSS Toolkit(RSS工具)

    2018-04-05 08:31:54 次阅读 稿源:互联网
    广告

      还记得以前吗?以前要做页面上写个小组件,调用指定(RSS输出地址的)的内容。最好的办法就是通过XSLT+XML来输出字符 串。让我们还是花了一分钟的时候回忆一下以前的做法吧

      曾经的做法:

       Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
                  Dim CacheKey As String = Url & "-" & Sort
                  Dim objCache As System.Web.Caching.Cache = HttpRuntime.Cache
                  If objCache.Item(CacheKey) Is Nothing Then
                      Dim xpDocument As XPathDocument = New XPathDocument(Url, XmlSpace.Preserve)
                      Dim XTran As XslTransform = New XslTransform
                      XTran.Load(Web.HttpRuntime.AppDomainAppPath & "TransForm.xsl") 'TransForm.xsl
                      Dim sw As StringWriter = New StringWriter

                      Dim xArgList As XsltArgumentList = New XsltArgumentList
                      xArgList.AddParam("Sort", "", Sort)
                      xArgList.AddParam("strlength", "", strLength)
                      XTran.Transform(xpDocument, xArgList, sw)
                      objCache.Insert(CacheKey, sw, Nothing, DateTime.Now.AddMinutes(15), TimeSpan.Zero)
                  End If
                  MyBase.Text = CType(objCache.Item(CacheKey), StringWriter).ToString

              End SubXSLT转换文件

      <?xml version="1.0" encoding="gb2312"?>
      <xsl:stylesheet
          version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns="http://www.w3.org/TR/REC-html40"
          xmlns:msxsl="urn:schemas-microsoft-com:xslt"
          xmlns:dc="http://purl.org/dc/elements/1.1/"
          xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
          xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
          xmlns:resuls="urn:StrLength">
      <xsl:param name="Sort" select="'10'"></xsl:param>
      <xsl:param name="strlength" select="'15'"></xsl:param>
      <xsl:template match="//rss">
          <xsl:apply-templates select="channel" />
      </xsl:template>

      <msxsl:script language="VB" implements-prefix="resuls">
      <![CDATA[
          Function GetSubString(byval origStr As String, byval endIndex As Integer) As String
         Dim bytes As Byte() = System.Text.Encoding.GetEncoding("gb2312").GetBytes(origStr)
         If endIndex >= bytes.Length Then
            Return origStr
         End If
         Dim subBytes(endIndex) As Byte
         Array.Copy(bytes, 0, subBytes, 0, endIndex)
         Return System.Text.Encoding.GetEncoding("gb2312").GetString(subBytes) + ""
      End Function 'GetSubString

          public function strDate(byval s as string)as string
              return CDate(s).Day.ToString & "日"
          end function
      ]]>
      </msxsl:script>

      <xsl:template match="channel">
          <table width="300" border="0" cellspacing="0" cellpadding="0">
              <xsl:for-each select="item">
                  <xsl:if test="position() &lt;=$Sort">
                  <tr>
                      <td width="21"><img src="http://download.pchome.net/allimage/p1.gif"/></td>
                      <td><a href="{link}"><xsl:value-of select="resuls:GetSubString(title,$strlength)"/></a>  <xsl:value-of select="resuls:strDate(dc:date)"/></td>
                  </tr>
                  </xsl:if>
              </xsl:for-each>
          </table>
      </xsl:template>
      </xsl:stylesheet>

      而现在。根据MS的想法。一切只要拖拖控件就能完成我们的所要功能(我一向不喜欢这样,还是自己DIY好)。所以。下面介绍这款小工具:ASP.NET RSS Toolkit
      RSS TOOLKIT主要是从服务器上装载RSS输出(XML格式输出),生成数据集,然后填充到DATALIST控件当中。另外它支持数据缓存的功能
      目前最新版本:1.0.0.1
      新的特性:
      •    Added MaxItems property to RssDataSource to limit the number of items returned.
      •    Added automatic generation of <link> tags from RssHyperLink control, to light up the RSS
      toolbar icon in IE7. For more information please see http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx
      •    Added protected Context property (of type HttpContext) to RssHttpHandlerBase class, to allow access to the
      HTTP request while generating a feed.
      •    Added generation of LoadChannel(string url) method in RssCodeGenerator so that one strongly typed
      channel class can be used to consume different channels.
      •    Fixed problem expanding app relative (~/…) links containing query string when generating RSS feeds.
      下载地址:点击下载
      详细说明:http://weblogs.asp.net/scottgu/archive/2006/02/22/438738.aspx

      创建新的页面
      

    为datalist控件创建新的数据源
      

    选择rssDataSource
      

    输入RSS地址(我这里以http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml)

      
       

    根据RSS输出的格式,进行绑定
      


      

      OK。现在可以浏览一下效果
      


      

      晚上出去吃晚饭的时候。走出外面,感觉到夏天的来到。呵。我喜欢夏天的这种感觉。带上好的心情,出去走走。也是一种很好的享受。最后。推荐一首歌:夏天的味道。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告