设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

ASP.NET RSS Toolkit(RSS工具)

来源:网络收集 作者:佚名 时间:2007-04-25 23:12:36

还记得以前吗?以前要做页面上写个小组件,调用指定(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() <=$Sort">
            <tr>
                <td width="21"><img src="/UploadPic/2007-4/2007425231236746.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>

[1] [2] [3]  下一页

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: