JAVA调用新浪天气预报代码(返回xml格式)
来源:互联网 发布:js获取焦点的函数 编辑:程序博客网 时间:2024/05/21 16:59
今天再写一个JAVA调用新浪天气预报的代码,这个返回的是xml格式的,所以这里要用到xml解析,这里采用的是dom4解析,所以这里要导入dom4j的jar包,另外需要建立远程连接还需要导入httpclient这个jar包,具体不多说了,直接上代码。
注:由于新浪用的是gbk的编码 所以我们要转码。
1.第一方法是获取新浪天气的代码:
public static String getWeather(String cityname){String city=URLEncoder.encode(cityname);String url="http://php.weather.sina.com.cn/xml.php?city="+city+"&password=DJOYnieT8234jlsK&day=0";String returnStr = "";HttpClient client = new HttpClient();PostMethod getMethod = new PostMethod(url);try {client.executeMethod(getMethod);returnStr = new String(getMethod.getResponseBodyAsString().getBytes("iso-8859-1"), "UTF-8");// 链接返回来的信息} catch (HttpException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return returnStr;
2.这个是根据获取回来的信息进行dom解析的代码:
public static String weather(String cityname){String ss=getWeather(cityname);StringBuffer buff = new StringBuffer();Document doc = null;try {doc = DocumentHelper.parseText(ss); // 将字符串转为XMLElement rootElt = doc.getRootElement(); // 获取根节点System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称Iterator iter = rootElt.elementIterator("Weather"); // 获取根节点下的子节点Weather// 遍历head节点while (iter.hasNext()) {Element recordEle = (Element) iter.next();String city = recordEle.elementTextTrim("city"); // 拿到Weather节点下的子节点title值buff.append("您好,我是小V,以下是今天的天气情况!").append("\n\n");String date=recordEle.elementTextTrim("savedate_weather");buff.append("当前日期:").append(date).append("\n");buff.append("城市:" + city).append("\n");String status1 = recordEle.elementTextTrim("status1");String status2 = recordEle.elementTextTrim("status2");buff.append("天气情况:" + status1 + "转" + status2).append("\n");String temperature1 = recordEle.elementTextTrim("temperature1");String temperature2 = recordEle.elementTextTrim("temperature2");buff.append("温度:" + temperature1 + "~~" + temperature2 + "摄氏度").append("\n");String chy_shuoming = recordEle.elementTextTrim("chy_shuoming");buff.append("建议穿衣:" + chy_shuoming).append("\n");String gm_s = recordEle.elementTextTrim("gm_s");buff.append("需要注意:" + gm_s).append("\n");buff.append("很高兴为您服务").append("\n");buff.append("回复 ? 显示需要的帮助。").append("\n\n");;}} catch (DocumentException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}return buff.toString();
3.另外你可以自行写个main方法测试一下效果,这里就不再写出了,相对简单,希望能帮助到你。
- JAVA调用新浪天气预报代码(返回xml格式)
- JAVA调用国家气象局的天气预报(返回json格式)
- java获取新浪天气预报代码
- java获取新浪天气预报代码
- Java获取新浪天气预报代码
- 天气预报js调用代码(QQ,新浪,265)
- java调用天气预报调用代码
- Java调用天气预报调用代码
- 读取xml格式的天气预报的代码
- 新浪首页天气预报代码
- 新浪QQ等站天气预报代码调用大全
- 新浪QQ等站天气预报代码调用大全
- 新浪QQ等站天气预报代码调用大全zz
- 新浪QQ等站天气预报代码调用大全
- 新浪QQ等站天气预报代码调用大全
- 新浪QQ等站天气预报代码调用大全
- 新浪QQ等站天气预报代码调用大全
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- 数据库系统原理之关系运算
- ReportingServicesService.exe占用8080端口问题
- Debug Assertion Failed!
- OpenTSDB源码分析之TSDB表操作(新增)
- 最短路&&差分约束
- JAVA调用新浪天气预报代码(返回xml格式)
- mustache if else
- 解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- java生成随机数
- Android 下拉刷新框架实现
- Android提高十七篇之多级树形菜单的实现
- throw和throws区别
- 设计模式之模板模式(Template Model)
- HDU 1124 Factorial