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

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

  图表1

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

  稍后窗体会接到所响应的 Xml 数据,通过 ASP.NET AJAX 所提供的 XPathBridgeTransformer 类别将 Xml 内容转换成 Script 可以识别的结果,经过版面编排后呈现在画面上。兹将转换 Xml 文件格式的 Web 服务程序代码列示如下:jiwjf.com

  _

  Public Class WS_RSS_Header

  Inherits System.Web.Services.WebService

  _

  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 撰写指令码使用的名称,www.lodlc.com

  ' 数值(Value)代表 Xml 文件标签。

  RssDictionary.Add("HeaderTitle", "title")

  RssDictionary.Add("HeaderLink", "link")

  RssDictionary.Add("HeaderDescription", "description")

  ' 将 Dictionary 对象 加入 BridgeTransformData 类别对象。

  RssData.Dictionaries.Add("selectedNodes", RssDictionary)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值