使用YQL(Google Feed API替代方案)显示RSS源(2)

步骤3: 要使用YQL显示RSS源,我们只需构造正确的YQL查询字符串,该字符串可以获取目标RSS源,可选地对它们进行排序和过滤,然后将结果作为JSON对象返回进行成型进入人类可读的东西。 以下显示了用于以各种方式获取RSS提要的最常见的YQL查询字符串:

  • select * from rss where url = "rssurl"  //获取1个RSS提要的内容
  • select * from rss where url in ("rssurl", "rssurl2", etc)  //获取多个RSS提要的内容
  • select * from rss(0, 5) where url = "rssurl"  //从RSS提要中获取前5个条目
  • select * from rss where url = "rssurl" | sort(field="pubDate", descending="true")  //按特定字段排序Feed(即:pubDate)

还有就是  YQL控制台 ,你可以用它来输入现场YQL查询,看看被返回了什么,也是  YQL指南  关于构建查询更多信息。

一旦我们收到了所需的RSS提要作为JSON对象,最后一步就是解析并显示它。 以下简单示例显示了QZ.com的前5个RSS条目:

代码:

1
2
3
4
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<div id= "qznews" ></div>
 
<script>
YUI().use( 'yql' , function (Y){
     var query = 'select * from rss(0,5) where url = " http://qz.com/feed/ "'
     var q = Y.YQL(query, function (r){
         //r now contains the result of the YQL Query as a JSON
         var feedmarkup = '<p>'
         var feed = r.query.results.item // get feed as array of entries
         for ( var i=0; i<feed.length; i++){
             feedmarkup += '<a href="' + feed[i].link + '">'
             feedmarkup += feed[i].title + '</a><br />'
             feedmarkup += feed[i].description + '</p>'
         }
         document.getElementById( 'qznews' ).innerHTML = feedmarkup
     })
})
</script>

演示:

如您所见,YQL查询完成后,该参数 r  将结果包含为JSON对象。 要访问实际的feed,我们引用 r.query.results.item ,它返回一个RSS条目数组。 每个条目的各个组件,例如“标题”,“描述”等,存储在每个数组条目内的相应属性中。 您的浏览器控制台是您检查  r 参数 内容的最佳朋友 ,包括YQL查询中存在错误或订阅源无法加载时。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69933200/viewspace-2651464/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69933200/viewspace-2651464/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值