public void get(String city) {
StringBuffer sb = new StringBuffer();
try {
URL url = new URL("http://www.google.com/ig/api?hl=zh_cn&weather="+city);
String s = null;
sb = new StringBuffer();
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream(),"gb2312"));
while ((s = in.readLine()) != null) {
sb.append(s);
}
readXML(sb.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/解析xml文件
public static String readXML(String str){
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
StringBuffer stringBuffer = new StringBuffer();
try {
DocumentBuilder builder = builderFactory.newDocumentBuilder();
StringReader sr = new StringReader(str);
InputSource is = new InputSource(sr);
Document doc = builder.parse(is);
NodeList node = doc.getElementsByTagName("forecast_conditions");
System.out.println(node.getLength());
for (int i = 0; i <node.getLength(); i++) {
stringBuffer.append(doc.getElementsByTagName("day_of_week").item(i).getAttributes().item(0).getNodeValue());
stringBuffer.append(doc.getElementsByTagName("low").item(i).getAttributes().item(0).getNodeValue());
stringBuffer.append(doc.getElementsByTagName("high").item(i).getAttributes().item(0).getNodeValue());
stringBuffer.append(doc.getElementsByTagName("condition").item(i).getAttributes().item(0).getNodeValue());
stringBuffer.append("< img src='http://www.google.com"+doc.getElementsByTagName("icon").item(i).getAttributes().item(0).getNodeValue()+"' />");
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return stringBuffer.toString();
}