技术开发 频道

ASP.NET AJAX 如何制作RSS订阅器


【IT168技术文档】

  远在 ASP.NET AJAX 的前一个版本,也就是 Microsoft Atlas 的官方文件中提到,Atlas Framework 支持扩展名为 asbx 的 Bridge 服务,用来将远程 RSS 或者是 Web 服务所掷回的 Xml 文件转换为 JavaScript 可读的内容。但是,目前 ASP.NET AJAX 的 RC 版本已经不再支持 Bridge 服务,难道就没有其它的解决办法吗?答案是肯定的。

  按下「取得RSS」按钮之后,窗体会自动向章立民研究室部落格所提供的 RSS 服务发出异步处理请求,等到服务器接受请求处理完毕之后,会将目前章立民研究室部落格首页出现的文章与相关信息,以 Xml 格式掷回。 

  稍后窗体会接到服务器所响应的 Xml 数据,通过 ASP.NET AJAX 所提供的 XPathBridgeTransformer 类别将 Xml 内容转换成 JavaScript 可以识别的结果,经过版面编排后呈现在画面上。兹将转换 Xml 文件格式的 Web 服务程序代码列示如下:
<ScriptService()> _ Public Class WS_RSS_Header Inherits System.Web.Services.WebService <WebMethod()> _ Public Function RequestRSS() As Object ' 读取 Web.config 组态档设定。 Dim RssUrl As New _ Uri(WebConfigurationManager.AppSettings.Get("LimingStudioRssUrl").ToString()) If RssUrl.Scheme = Uri.UriSchemeHttp Then ' 建立 HttpWebRequest 类别对象来发出 Http 请求。 Dim RssRequest As HttpWebRequest = HttpWebRequest.Create(RssUrl) RssRequest.Method = WebRequestMethods.Http.Get ' 建立 HttpWebResponse 类别对象来接受 Http 响应。 Dim RssResponse As HttpWebResponse = RssRequest.GetResponse() ' 建立代表 Http 响应的 StreamReader 串流对象。 Dim RssReader As New StreamReader(RssResponse.GetResponseStream()) ' 将 Http 响应(也就是 Xml 文件内容)写入 String 对象。 Dim RssResult As String = RssReader.ReadToEnd() ' 建立 XPathBridgeTransformer 类别对象来转换 Xml 内容。 Dim RssTransformer As New _ Microsoft.Web.Preview.Services.XPathBridgeTransformer() ' 建立 BridgeTransformData 类别对象储存转换 Xml 信息。 Dim RssData As New Microsoft.Web.Preview.Services.BridgeTransformData() ' 设定 Xml 转换准则,也就是筛选 Xml 文件的条件。 RssData.Attributes.Add("selector", "channel") ' 建立 Dictionary 对象,储存筛选后的 Xml 内容。 Dim RssDictionary As New Dictionary(Of String, String)(3) ' 加入 Dictionary 对象内容, ' 键值(Key)代表前端 JavaScript 撰写指令码使用的名称, ' 数值(Value)代表 Xml 文件标签。 RssDictionary.Add("HeaderTitle", "title") RssDictionary.Add("HeaderLink", "link") RssDictionary.Add("HeaderDescription", "description") ' 将 Dictionary 对象 加入 BridgeTransformData 类别对象。 RssData.Dictionaries.Add("selectedNodes", RssDictionary) ' 初始化建立 XPathBridgeTransformer 类别对象,预备进行 Xml 数据转换。 RssTransformer.Initialize(RssData) ' 正式进行 Xml 文件转换,并将结果掷回前端。 Return RssTransformer.Transform(RssResult) End If Return Nothing End Function End Class
  最后要提到一点,除非您希望使用旧版本的 Atlas Framework 来建置ASP.NET AJAX 应用程序,否则应该以官方正式发布的 ASP.NET AJAX 语法作为学习对象,我们下次见。
0
相关文章