您的位置:首页> 日志> 动易系统 正文

先叨几句:

  在网页上显示天气预报,常见的方法是去采集或者嵌入专门的气象网站或者各大门户网站的天气预报信息。

  我们是不能自己预报天气的,只是转载专门天气预报机构的数据,如中国气象局、中国天气网,或者辗转地调用门户网站的页面,如新浪、腾讯、 hao123……会写程序的人,可以自己去实现这些数据的采集,但这实在是件相当麻烦的事;而对于只制作前台模板的人而言(本人就是),就更头疼了,会的 AS和JS都会因跨域问题,不能在前台模板中直接读取这些数据。

  网络时代是一个伟大的时代。百度一下谷歌一下必应一下就能搜索到一堆代码。这些代码一般是通过iframe嵌入别人做好的网页,或者用脚本调用定义好的页面,来在自己的网页上显示天气报道。这可以解决大部分需求了。但还是有几个灰常严重的问题:页面上的内容都是定义好的,包括字体、布局样式,没有办法改变它;想要添加一些效果,比如滚动,也是很费劲;有一些网站本身的质量不高,很不稳定,说不定哪天就关闭了,于是原本放天气预报的地方就出来个错误提示;有的是远程页面载入时速度很慢,结果因为一个天气预报把自己的网站也拖累了。尤其是第一点,体会太深了:和不懂技术的客户解释这个天气报道,为什么不能显示更详细的信息,为什么不能横的变成竖的,为什么不能换个其他样子的图标,为什么不能改变字体颜色……实在是太痛苦了。

  使用“火车头采集器”采集天气这样的方法也许就是这样应运而生了。这个的办法是比较完美的,可以解决上述的所有问题,也能和绝大多数的CMS兼容。但就是有点用牛刀杀鸡的感觉。得多用一个工具,不熟悉这个工具的人还得花时间去学习。

 

 

言归正传:

  在SiteFactory/BizIdea 系列产品中,可以有更灵活的解决方法:SF/BI的标签是可以调用外部数据源的。

  首先是要获得可用的数据源。本文使用的数据源地址是:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=59279

  其中theCityName的值为城市对应的天气预报查询码。这个可以在网上搜索到,也可以参考标下载文件中的文档,还可以点击这里查看。

  用浏览器打开以上数据源地址,可以看到的是一个XML文档结构。

  然后就可以根据这个数据结构编写调用的标签了。建立简单XSLT标签,数据类型为XML数据源,数据源连接字符串填上述地址。如下图:

 

 

  接下来就可以像一般的标签那样,按自己的需要输出XML各个节点的数据了。具体标签可以参考文章附件中的示例。

  在模板中插入写好的标签,就可以看到输出的数据了。

  最后就是定义这些数据的样式。

  大功告成!

 

  简单调用版本:http://www.ks-pe.com/Category_77/Index.aspx

  详细信息版本:http://www.ks-pe.com/Category_75/Index.aspx

  标签及相关文件打包下载:http://www.ks-pe.com/Common/ShowDownloadUrl.aspx?urlid=0&id=135

 

注意:

  本文的示例以及提供下载的标签中使用的是www.webxml.com.cn提供的免费天气预报数据调用接口。本文仅使用其作为示例;接口程序以及附带图标文件版权亦归原作者所有。您也可以选择该网站的收费服务或使用其他提供同类服务网站的数据。

  您若继续阅读或下载相关的标签表明已经了解并接受这些内容,也会遵守webxml.com.cn的相关使用规定。

 

后记:

  偶然会看见有对SF/BI标签的质疑。而事实上,在SF/BI中的模板、标签,是不能按那种一成不变的那种标签模式去理解的;只需要稍微了解一下,就会发现它能做的实在比想象中多很多。

  泡饭们会发现,标签在不断地优化,除了功能强大外,也变得越来越好用。