import org.xml.sax.Attributes;import org.xml.sax.SAXException;import javax.xml.parsers.SAXParserFactory;import javax.xml.parsers.SAXParser;import org.xml.sax.helpers.DefaultHandler;import java.net.URL;import java.io.InputStream;import java.util.Date;import java.util.Locale;import java.text.SimpleDateFormat;/*** For more information, please visit: http://www.crackj2ee.com* Author: Liao Xuefeng*/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); try {Date publish =
new SimpleDateFormat("EEE, dd MMM yyyy hh:mm a z", Locale.US).parse(s_date); //System.out.println("Publish: " + 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("Weather: "+ text + ", low=" + low + ", high=" + high); } super.startElement(uri, localName, qName, attributes); } public static void main(String args[]){ try{URL url = new URL("http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008"); InputStream input = url.openStream(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); SAXParser parser = factory.newSAXParser(); parser.parse(input, new YahooHandler()); }catch(Exception e){ System.out.println(e.toString()); } }}
运行结果:C:java>java YahooHandler
Weather: Mostly Cloudy, low=17, high=28
Weather: AM Clouds/PM Sun, low=16, high=26
Yahoo会返回当天和第二天的Weather预报。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131496/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/374079/viewspace-131496/