`

J2EE工具类:WeatherUtil.java

阅读更多
package com.worthtech.app.util;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URL;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

/**
 * 天气查询. 推荐使用此 google service 查询<br/>
 */
public class WeatherUtil {

		/**
		 * 使用 google 查询天气<br/>
		 * 上海: http://www.google.com/ig/api?hl=zh_cn&weather=shanghai
		 * 
		 * @param city 城市拼音, 如 北京: beijing
		 */
		public static String getWeather(String city) {
			StringBuilder sb = new StringBuilder();
			try {
				String ur = "http://www.google.com/ig/api?hl=zh_cn&weather=";
				URL url = new URL(ur + city);
				InputStream in = url.openStream();

				String data = "";
				// 将流转换为 文本. 此一过程是为了解决乱码问题
				java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
				int i = -1;
				while ((i = in.read()) != -1){
					bos.write(i);
				}

				// 转换编码为 GB18030, 否则会乱码
				data = bos.toString().replace("<?xml version=\"1.0\"?>","<?xml version=\"1.0\" encoding=\"GB18030\"?>");
						
				// 将文本转换成流
				InputStream is = new ByteArrayInputStream(data.getBytes());

				// 读取流
				Document doc = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
				
				NodeList info = doc.getElementsByTagName("forecast_information").item(0).getChildNodes();
				sb.append(info.item(4).getAttributes().item(0).getNodeValue())// 日期
					.append("|")
					.append(city)
					.append("|");

				// 今天的天气, 最高气温 最低气温
				NodeList today = doc.getElementsByTagName("forecast_conditions").item(0).getChildNodes();
				sb.append(today.item(0).getAttributes().item(0).getNodeValue())//星期
					.append("|")
					.append(today.item(1).getAttributes().item(0).getNodeValue())//最低气温1
					.append("℃|")
					.append(today.item(2).getAttributes().item(0).getNodeValue())//最高气温2
					.append("℃|")
					.append(today.item(3).getAttributes().item(0).getNodeValue())//晴的图标
					.append("|")
					.append(today.item(4).getAttributes().item(0).getNodeValue())//晴4
					;

			} catch (Exception e) {
				sb.append("获取天气失败或不存在此城市");
			}
			return sb.toString();
		}

		public static void main(String[] args) {
			System.out.println("上海天气: " + WeatherUtil.getWeather("shanghai"));
			System.out.println("香港天气: " + WeatherUtil.getWeather("hongkong"));
			System.out.println("北京天气: " + WeatherUtil.getWeather("beijing"));
		}
}

分享到:
评论

相关推荐

    j2ee.jar架包

    j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar...

    j2ee 1.4所有jar包

    activation.jar javax.servlet.jar javax.servlet.jsp.jar jboss-j2ee.jar jboss-jaxrpc.jar jboss-jsr77.jar jboss-saaj.jar mail.jar namespace.jar xml-apis.jar

    J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 )

    Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是 Sun Microsystems 推出的用于构建分布式、多层企业级应用的框架。它为开发者提供了多种服务和组件模型,包括Java Servlets、JavaServer Pages ...

    21天学通J2EE和一些J2EE书及代码].java.-.Teach.Yourself.J2EE.in.21.Days.-.Sams.(eBook-pdf)

    《21天学通J2EE》一书旨在为读者提供一个系统且高效的学习路径,以掌握Java 2 Enterprise Edition(J2EE)的核心概念和技术。J2EE是Sun Microsystems在2000年推出的一套企业级Java平台标准,它提供了一组组件和服务...

    java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.

    java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。

    Turbo ePrinting(J2EE版)开发指南.rar

    《Turbo ePrinting(J2EE版)开发指南》是一份专为Java企业级开发者准备的详细教程,旨在帮助他们理解和掌握如何在J2EE平台上开发和实现Turbo ePrinting系统。该指南涵盖了从基础概念到高级实践的全方位内容,旨在提升...

    J2EE考试题目及答案.pdf

    J2EE 是 Java 企业版平台的缩写,指的是 Java 语言中用于开发企业级应用程序的技术平台。J2EE 平台主要包括四层模型:客户端层、Web 层、业务逻辑层和企业信息系统层。 J2EE 平台的四层模型: * 客户端层:运行在...

    第一章 J2EE概述.ppt

    J2EE(Java Enterprise Edition),是Java EE编程技术课程的一部分,为企业级应用程序提供了一种标准化的开发框架。J2EE的出现是为了解决传统应用程序模型的种种缺陷,提供了一种可扩展、可维护、可伸缩的开发架构。...

    Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007

    《Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007》这本书是针对Java和J2EE开发者求职面试的一本指南,它提供了丰富的面试问题和解答,帮助求职者准备J2EE相关的职位面试。这本书的第二版在2007年4月发布...

    Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007.pdf

    ### Java/J2EE Job Interview Companion知识点总结 #### 一、书籍基本信息 - **书名**:《Java/J2EE Job Interview Companion》第二版 - **出版时间**:2007年4月 - **作者**:K. Arulkumaran 和 A. Sivayini - **...

    j2ee源码 Commonjava.java

    j2ee源码j2ee源码j2ee源码j2ee源码j2ee源码j2ee源码j2ee源Commonjava.javaCommonjava.javaCommonjava.javaCommonjava.javaCommonjava.java

    J2EE_architecture.rar_site:www.pudn.com_架构师

    J2EE提供JTA(Java Transaction API)来处理事务,JMS(Java Message Service)用于异步通信,JNDI(Java Naming and Directory Interface)提供命名和目录服务。 5. **中间件(Middleware)**:J2EE应用服务器(如...

    java-一个j2ee的开发案例程序.zip.zip

    你可以从中学习到如何将Java类、接口和框架整合起来实现一个完整的J2EE应用。 其次,"一个j2ee的开发案例程序.zip"是案例程序的源代码或二进制文件。这个压缩文件可能包含以下几个部分: 1. **源代码**:可能包括...

    archive_一个j2ee的开发案例程序.zip.zip

    标题中的"archive_一个j2EE的开发案例程序.zip.zip"表明这是一个压缩文件,其中包含了一个J2EE(Java 2 Platform, Enterprise Edition)的开发案例。J2EE是Java平台的一个版本,专为构建企业级分布式应用系统设计。...

    J2EE系列讲座之Hibernate.lesson1.rar

    5. **实体类和映射文件**:讲解如何创建Java实体类,以及对应的.hbm.xml映射文件,理解属性与数据库字段的对应。 6. **CRUD操作**:展示如何使用Hibernate进行创建(Create)、读取(Read)、更新(Update)和删除...

    Java开发语言的开发平台与J2EE编程技术问题研究.pdf

    J2EE(Java 2 Platform, Enterprise Edition)是基于Java语言的一种企业级应用开发平台,它侧重于企业级应用的开发。J2EE技术的出现,弥补了Java在企业级应用中的不足,其核心是Enterprise JavaBeans(EJB),提供了...

    javax.management.j2ee:javax.management.j2ee api的存储库

    :warning: 该项目现在是EE4J计划的一部分。 该仓库已被归档,因为所有活动现在都在。 有关整体EE4J过渡状态,请参见。 javax.management.j2ee javax.management.j2ee api的存储库

    j2ee.chm.zip_chm help id java_j2ee chm_j2ee help c++_j2ee.c_zip

    《J2EE技术详解——基于j2ee.chm.zip_chm help id java_j2ee chm_j2ee help c++_j2ee.c_zip的综合指南》 在信息技术领域,Java 2 Platform, Enterprise Edition(J2EE)是用于构建企业级应用的重要平台。它提供了...

    Java.J2EE.EJB-Enterprise.JavaBeans, 3rd Edition-Titan.Books

    《Java.J2EE.EJB-Enterprise.JavaBeans, 3rd Edition-Titan.Books》是一部针对企业级Java开发的重要参考资料,特别关注Java Enterprise Edition (J2EE) 中的Enterprise JavaBeans (EJB) 技术。这本书的第三版,由...

Global site tag (gtag.js) - Google Analytics