当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

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

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入 远在 ASP.NET AJAX 的前一个版本,也就是 Microsoft Atlas 的官方文件中提到,Atlas Framework 支持扩展名为 asbx 的 Bridge 服务,用来将远程 RSS 或者是 Web 服务所掷回的 Xml 文件转换为 JavaScript 可读的内容。但是,目前 ASP.NET AJAX 的 RC 版本已经不再支持 Bridge 服务,难道就没有其它的解决办法吗?答案是肯定的。

 

 

图表1

 

 图表1是网页范例的执行画面,按下「取得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 语法作为学习对象,我们下次见。

相关内容
赞助商链接