用YQL跨域读取XML
2009 5 17 07:29 PM 3036次查看
分类:编程 标签:无
YQL与一般的查询语言不同,它是基于WEB的查询语言。它可以指定任意的网络文本资源(HTML、XML、JSON和CSV等),然后直接对该文件进行查询,并以XML或JSONP方式输出结果。
虽然听上去好像没什么了不起,但由于查询结果是直接以URL方式提供,而JSONP是可以很方便地跨域加载的,这就直接导致了可以用AJAX方式加载任意的网络文本资源。只要你愿意,你的网站可以随时与新浪之类的门户网站保持同步,以实时获取最新的新闻、财经等资讯,而服务器却不需要保存或下载这些资料。
例如我要查询新浪的最新新闻,我知道有这样一个地址:
http://rss.sina.com.cn/news/marquee/ddt.xml
于是登录YQL Console,查询条件输入:
select * from xml
where url='http://rss.sina.com.cn/news/marquee/ddt.xml'
然后选择JSON方式,callback设为sinanews(这个随便你怎么写),点击TEST按钮后,下面便会出现查询结果,右侧也会给出JSONP方式的链接。将这个链接记下,就能在你的网站使用这个资源了,是不是超简单…
当然这项服务也是有限制的:
- 每个应用程序(根据Access Key来区分)每天最多调用100,000次。
- 每个IP每小时:
/v1/public/* 1000次
/v1/yql/* 10000次
最后补充一句,雅虎真是好人,给你一张卡~
向下滚动可载入更多评论,或者点这里禁止自动加载。