Yahoo天气预报调用

现已南京为例


import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class YahooHandler extends DefaultHandler {
public void startElement(String uri, String localName, String qName,
Attributes attributes)throws SAXException {
if ("yweather:condition".equals(qName)) {
String s_date = attributes.getValue(3);
System.out.println("s_date:"+s_date);
try {
Date publish = new SimpleDateFormat(
"EEE, dd MMM yyyy hh:mm a z",

Locale.US).parse(s_date);
System.out.println("发布时间: " + publish.toString());
} catch (Exception e) {
e.printStackTrace();
throw new SAXException("Cannot parse date: " + s_date);
}
} else if ("yweather:forecast".equals(qName)) {
String s_date = attributes.getValue(1);
Date date = null;
try {
date = new SimpleDateFormat("dd MMM yyyy", Locale.US)
.parse(s_date);
} catch (Exception e) {
e.printStackTrace();
throw new SAXException("Cannot parse date: " + s_date);
}
int low = Integer.parseInt(attributes.getValue(2));
int high = Integer.parseInt(attributes.getValue(3));
String text = attributes.getValue(4);
int code = Integer.parseInt(attributes.getValue(5));
System.out.println(text + ", 最低温度=" + low + "度, 最高温度="
+ high+"度;");
}
super.startElement(uri, localName, qName, attributes);
}

public static void main(String args[]) throws Exception {
System.out.println("南京地区天气预报:");
String p=null;
p="CHXX0099";
URL url = new URL(
"http://xml.weather.yahoo.com/forecastrss?u=c&p="+p);
InputStream input = url.openStream();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
SAXParser parser = factory.newSAXParser();
parser.parse(input, new YahooHandler());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值