使用google天气预报API获取今天和未来3天的天气信息


placeholder image
admin 发布于:2011-02-21 11:46:00
阅读:loading

序:记得去年吧,觉得天气预报新鲜,在网上找了点资料,发现是用WebService做的,虽然处理的xml数据有点模糊,倒是也实现了,最近在网上看到的资料还有利用在中国天气网请求城市,并处理解析鼠标右键源文件,用正则表达式解析某部分的特殊数据。又找了找资料,觉得还是这里所说的方式较为简单点,直接处理xml数据,处理有很多种,选择你说擅长的一种开始吧!这里是dom4j........

先看看实现结果:

image.png

google提供的天气预报API,给定城市名称,返回城市天气的源xml文件如下:

  <?xml version="1.0" ?>

- <xml_api_reply version="1">

- <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">

- <forecast_information>

  <city data="Beijing, Beijing" />

  <postal_code data="beijing" />

  <latitude_e6 data="" />

  <longitude_e6 data="" />

  <forecast_date data="2011-02-21" />

  <current_date_time data="2011-02-21 17:00:00 +0000" />

  <unit_system data="SI" />

  </forecast_information>

- <current_conditions>

  <condition data="" />

  <temp_f data="37" />

  <temp_c data="3" />

  <humidity data="湿度: 70%" />

  <icon data="/ig/images/weather/sunny.gif" />

  <wind_condition data="风向: 北、风速:1 米/秒" />

  </current_conditions>

- <forecast_conditions>

  <day_of_week data="周一" />

  <low data="-3" />

  <high data="13" />

  <icon data="/ig/images/weather/sunny.gif" />

  <condition data="" />

  </forecast_conditions>

- <forecast_conditions>

  <day_of_week data="周二" />

  <low data="-1" />

  <high data="13" />

  <icon data="/ig/images/weather/mostly_sunny.gif" />

  <condition data="晴间多云" />

  </forecast_conditions>

- <forecast_conditions>

  <day_of_week data="周三" />

  <low data="-1" />

  <high data="13" />

  <icon data="/ig/images/weather/mostly_sunny.gif" />

  <condition data="以晴为主" />

  </forecast_conditions>

- <forecast_conditions>

  <day_of_week data="周四" />

  <low data="-1" />

  <high data="15" />

  <icon data="/ig/images/weather/sunny.gif" />

  <condition data="" />

  </forecast_conditions>

  </weather>

  </xml_api_reply>

例如:给出城市 北京,则从今日截止到未来3天的天气预报就为以上xml数据,点 北京 查看网络xml文件,或点击这里查看:http://www.google.com/ig/api?hl=zh_CN&weather=beijing

实现原理:

1、根据google提供的网址,传入城市的参数,返回该城市当天和未来3天的天气情况,并以xml文件形式返回数据。

2、使用dom4j来解析网络的xml文件。

3、额外说一点,在dom4j处理xml文件数据时,当需要使用到

rootElement.selectNodes("");该selectNodes()函数时,则需要额外导入一个jar文件,分别是

dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar

4、必须条件是电脑必须能够正常连接互联网。

 

详细代码为:

image.png

说明,以上为保存天气信息的bean对象,此处省略属性 get/set方法。接下来就是解析xml内容,获取天气信息的方法,详细如下:

image.png

image.png

image.png

说明,上述的 msgBean对象则为封装好的天气预报的bean对象,return null 部分表示没有找到所请求城市的天气预报,在页面上处理输出该对象的值,运输示例如最上。

 点赞


 发表评论

当前回复:作者

 评论列表


留言区