1.雅虎天气api:

String url2 = "http://sugg.us.search.yahoo.net/gossip-gl-location/?appid=weather&output=xml&command=%E5%8C%97%E4%BA%AC";

command是查询城市的名称,中英文皆可

xml文件显示如下:

<m q="tokyo" gprid="GQDeoIJDRjKw_ZaBppEXKA" c="tokyo" n="2">
<s k="Tokyo Prefecture" d="s:iso=JP&woeid=2345889&lon=139.431&lat=35.6998&s=Tokyo Prefecture&c="/>
<s k="Tokyo" d="pt:iso=JP&woeid=1118370&lon=139.741&lat=35.6705&s=Tokyo Prefecture&c=Japan"/>
</m>

2.获取String类型的xml文件

String xml = HttpUtils.getStringByUrl(url2);
        GlobalConstant.i("url2-->" + xml);
        tvShow.setText(xml);
public static String getStringByUrl(String url) {String outputString = "";DefaultHttpClient httpclient = new DefaultHttpClient();HttpGet httpget = new HttpGet(url);ResponseHandler<String> responseHandler = new BasicResponseHandler();try {outputString = httpclient.execute(httpget, responseHandler);} catch (Exception e) {GlobalConstant.i("http连接失败---->" + e);e.printStackTrace();}httpclient.getConnectionManager().shutdown();return outputString;}

3.开始sax解析

SSaxParese.weatherParese(xml);/*** * sax解析xml文件* @param weaUrl* @return 天气类*/public static WeatherBean weatherParese(String weaUrl) {SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();WeatherBean weatherBean = new WeatherBean();try {XMLReader xmlReader = saxParserFactory.newSAXParser().getXMLReader();WeatherXMLHandler handler = new WeatherXMLHandler();xmlReader.setContentHandler(handler);xmlReader.parse(new InputSource(new StringReader(weaUrl)));} catch (Exception e) {e.printStackTrace();GlobalConstant.i("sax解析error-->" + e);}return weatherBean;}

4.具体解析sax的内容处理器

public class WeatherXMLHandler extends DefaultHandler {WeatherBean weatherBean;/*** 构造方法*/public WeatherXMLHandler() {super();}private WeatherXMLHandler(WeatherBean weatherBean) {this.weatherBean = weatherBean;}@Overridepublic void startDocument() throws SAXException {// TODO Auto-generated method stubsuper.startDocument();GlobalConstant.i("文档解析开始");}@Overridepublic void endDocument() throws SAXException {// TODO Auto-generated method stubsuper.endDocument();GlobalConstant.i("文档解析结束");}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {// TODO Auto-generated method stubsuper.startElement(uri, localName, qName, attributes);GlobalConstant.i("element begin--->");if (qName.equals("m")) {
//          GlobalConstant.i("value--->" + attributes.getValue("q"));}if (qName.equals("s")) {GlobalConstant.i("k--->" + attributes.getValue("k"));GlobalConstant.i("d--->" + attributes.getValue("d"));}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {// TODO Auto-generated method stubsuper.endElement(uri, localName, qName);GlobalConstant.i("element end--->");}
}

sax解析雅虎天气api相关推荐

  1. php解析和风天气api,API爬取天气预报数据

    API爬取天气预报数据 """ 该网站为个人开发者提供免费的天气预报数据,自行访问官网注册,在控制台看到个人的key. 然后看API文档,基本可以开发了,有访问次数限制. ...

  2. 在asp.net中 利用雅虎天气API做天气预报功能

    出处:http://dotnet.cnblogs.com/page/42993/?page=1 这个功能 主要参考以上文章,同时本人又添加了中文天气显示 和天气图片显示. 雅虎天气的API 详细介绍 ...

  3. android 解析雅虎天气

    2019独角兽企业重金招聘Python工程师标准>>> 获取yahoo天气的woeid: http://query.yahooapis.com/v1/public/yql?q=sel ...

  4. java解析json天气api,免费天气API,全国天气 JSON API接口,可以获取五天的天气预报...

    稳定高效的天气API接口是很少有的,本站前一段时间开发了一个万年历,需要带天气预报,花了几天功夫,集成和容错处理好对外开放的天气接口.天气接口支持返回   JSON  和  XML  结果.并且可以获 ...

  5. java解析json天气api,使用Postman获取天气接口API(Json格式)

    一.接口URL http://wthrcdn.etouch.cn/weather_mini 二.请求参数 参数名称 类型 是否必须 说明 province string 1 对应哪个省 city st ...

  6. 雅虎天气API使用笔记

    查询时base_url: https://query.yahooapis.com/v1/public/yql?q= , 公共查询接口,有限制查询次数 https://query.yahooapis.c ...

  7. 雅虎天气API 多语言参数

    在URL后面添加  &lang=ru-ru    此即为申请返回结果为俄语的数据,  ra-ra即阿拉伯语结果  zh-cn即为中文结果

  8. 【Arduino】【ESP】使用Arduino(ESP8266版本)获取雅虎天气信息,并使用点阵显示......进行中

    最近想用Arduino联网查询天气,用点阵显示.最开始使用2560配合网络模块,后来发现了Esp8266也能当做一个带有Wifi的arduino板(关键是便宜啊!有时间再鼓捣,目前就是刷了ESPEas ...

  9. 使用雅虎的API便捷的创建天气预报程序

    在这篇自学材料的帮助下,你将学会使用雅虎的天气API来获取和显示天气预报. 最终结果显示 让我们来先看下最终结果: 第一步:创建一个新文件 我猜想你会使用Flash IDE,尽管你也能用Flex或标准 ...

最新文章

  1. python中 .sort()、 sorted()和 .reverse() 、reversed()的区别
  2. pycharm与github相配置连接(上传、删除、更新项目)
  3. 15. 3Sum_左右开工,遍历找出符合目标的数字
  4. python-反射基础-hasattr-getattr-setattr
  5. 07_Redis事务
  6. 添加控制器 提示找到不到上下文_JS局部上下文和全局上下文
  7. echarts折线图y轴根据数值自动_R语言基础绘图教程——第3章:折线图和带状图...
  8. [汇编语言计算机原理] 带开机音乐,速度、进度和行驶方向显示的出租出计费系统设计
  9. HDU_2156 分数矩阵
  10. debian网络配置文件的写法
  11. 2016 ECCV论文 《Peak-Piloted Deep Network for Facial Expression Recognition》
  12. 函数计算机显示RAD,计算器rad是什么意思
  13. 带有拉普拉斯平滑的Naive Bayes python代码实现
  14. 输出dom对象的HTML,console 输出 DOM 对象
  15. 部分主元法求解线性方程组
  16. 【Matlab】数据插值
  17. javamail发送邮件到qq邮箱图片不能显示问题
  18. 计算机毕业是先就业还是考研,先工作还是先考研?这些专业更适合先就业
  19. USB 协议整理 九:USB 协议调试工程说明
  20. linux sd卡驱动流程图,SD卡驱动(详细介绍,不明白的人可以仔细看看了.有流程图)-转-OpenEdv-开源电子网...

热门文章

  1. 求两个整数的最大公约数和最小公倍数
  2. 【Unity Shader】2020-04-21-崩三卡通渲染
  3. [转]BEHAVOUR TREE2
  4. dnf服务器未响应怎么解决方法,DNF未响应的原因分析与解决方法
  5. dorado是什么?
  6. 如何更改图片分辨率?在线修改分辨率的方法分享
  7. 用PD线连接android和iphone,使用C-A转接头+A-L线能让iPhone USB PD快充吗?
  8. 齐鲁工大青年论坛“体感与移动应用开发”举办
  9. java删除某些段落word_Java 添加、回复、修改(替换)、删除、读取Word批注
  10. 体验 Gitea Actions