看到YQL正在被提升为一种很好的做事方式,我很好奇如何使用YQL来获取并将两个不同的feed合并为一个(按pubDate排序)。
获取2个Feed非常简单,但事实证明这些Feed只是连接在一起而没有合并。
以下是示例代码。
select channel.title,channel.link,channel.item.title,channel.item.link
from xml where url in(
'http://code.flickr.com/blog/feed/rss/',
'http://feeds.delicious.com/v2/rss/codepo8?count=15',
'http://www.stevesouders.com/blog/feed/rss',
'http://www.yqlblog.net/blog/feed/',
'http://www.quirksmode.org/blog/index.xml'
)
答案 0 :(得分:3)
感谢您提供此信息。它在访问rss对象时也有效:
select title,link,pubDate from rss where url in (
'http://feeds.delicious.com/v2/rss/hasematzel?count=3',
'http://oliverschwarz.tumblr.com/rss',
'http://twitter.com/statuses/user_timeline/818226.rss',
'http://hasematzel.de/blog/feed/',
'http://piepmatzel.de/feed/'
) | sort(field="pubDate", descending="true")
这是创建新闻编辑室或生活流的一种非常简单的方法。不要忘记强制缓存YQL返回:)
答案 1 :(得分:2)
这应该可以解决问题
select channel.item.title,channel.item.link, channel.item.pubDate
from xml where url in(
'http://code.flickr.com/blog/feed/rss/',
'http://feeds.delicious.com/v2/rss/codepo8?count=15',
'http://www.stevesouders.com/blog/feed/rss',
'http://www.yqlblog.net/blog/feed/',
'http://www.quirksmode.org/blog/index.xml'
)
| unique(field="channel.item.link")
| sort(field="channel.item.pubDate", descending="true")
使用查询后功能 unique 过滤掉重复项,排序以重新排序结果。这里是指向这些函数http://developer.yahoo.com/yql/guide/sorting.html
的文档的链接答案 2 :(得分:1)
关于RSS问题 - YQL总是返回XML - 如果你想把它变成RSS feed,你也可以使用Yahoo Pipes和YQL模块将它作为RSS。