ASP.NET RSS Toolkit(RSS工具)

王朝学院·作者佚名  2011-12-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输出的格式,进行绑定

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--<%@ Register Assembly="RssToolkit" Namespace="RssToolkit" TagPrefix="RssToolkit" %>

<html>

<head runat="server">

<title>ScottGu Feed</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<h2>ScottGu Blog Feed</h2>

<asp:DataList ID="DataList1" runat="server" CellPadding="4" DataSourceID="RssDataSource1" ForeColor="#333333">

<ItemTemplate>

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("link") %>' Text='<%# Eval("title") %>'></asp:HyperLink>

</ItemTemplate>

</asp:DataList>

<RssToolkit:rssdatasource id="RssDataSource1" runat="server" url="http://weblogs.asp.net/scottgu/Rss.aspx">

</RssToolkit:rssdatasource>

</div>

</form>

</body>

</html>

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有