论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

ASP.NET RSS Toolkit(RSS工具)

文章类别:Asp.net | 发表日期:2008-10-5 22:11:12

还记得以前吗?以前要做页面上写个小组件,调用指定(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。现在可以浏览一下效果


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

视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058