日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 新浪天气预报接口_根据新浪天气API获取各地天气状况(Java实现)

發(fā)布時間:2025/5/22 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 新浪天气预报接口_根据新浪天气API获取各地天气状况(Java实现) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.代碼塊package com.quickmanager.util;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.io.FileInputStream;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

/**

* 解析xml文檔,包括本地文檔和url

* @author cyxl

* @version 1.0 2012-05-24

* @since 1.0

*

*/

public class XmlParser {

InputStream inStream;

Element root;

public InputStream getInStream() {

return inStream;

}

public void setInStream(InputStream inStream) {

this.inStream = inStream;

}

public Element getRoot() {

return root;

}

public void setRoot(Element root) {

this.root = root;

}

public XmlParser() {

}

public XmlParser(InputStream inStream) {

if (inStream != null) {

this.inStream = inStream;

DocumentBuilderFactory domfac = DocumentBuilderFactory

.newInstance();

try {

DocumentBuilder domBuilder = domfac.newDocumentBuilder();

Document doc = domBuilder.parse(inStream);

root = doc.getDocumentElement();

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public XmlParser(String path) {

InputStream inStream = null;

try {

inStream = new FileInputStream(path);

} catch (FileNotFoundException e1) {

e1.printStackTrace();

}

if (inStream != null) {

this.inStream = inStream;

DocumentBuilderFactory domfac = DocumentBuilderFactory

.newInstance();

try {

DocumentBuilder domBuilder = domfac.newDocumentBuilder();

Document doc = domBuilder.parse(inStream);

root = doc.getDocumentElement();

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public XmlParser(URL url) {

InputStream inStream = null;

try {

inStream = url.openStream();

} catch (IOException e1) {

e1.printStackTrace();

}

if (inStream != null) {

this.inStream = inStream;

DocumentBuilderFactory domfac = DocumentBuilderFactory

.newInstance();

try {

DocumentBuilder domBuilder = domfac.newDocumentBuilder();

Document doc = domBuilder.parse(inStream);

root = doc.getDocumentElement();

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

*

* @param nodes

* @return 單個節(jié)點(diǎn)多個值以分號分隔

*/

public Map getValue(String[] nodes) {

if (inStream == null || root==null) {

return null;

}

Map map = new HashMap();

// 初始化每個節(jié)點(diǎn)的值為null

for (int i = 0; i < nodes.length; i++) {

map.put(nodes[i], null);

}

// 遍歷第一節(jié)點(diǎn)

NodeList topNodes = root.getChildNodes();

if (topNodes != null) {

for (int i = 0; i < topNodes.getLength(); i++) {

Node book = topNodes.item(i);

if (book.getNodeType() == Node.ELEMENT_NODE) {

for (int j = 0; j < nodes.length; j++) {

for (Node node = book.getFirstChild(); node != null; node = node

.getNextSibling()) {

if (node.getNodeType() == Node.ELEMENT_NODE) {

if (node.getNodeName().equals(nodes[j])) {

//String val=node.getFirstChild().getNodeValue();

String val = node.getTextContent();

System.out.println(nodes[j] + ":" + val);

// 如果原來已經(jīng)有值則以分號分隔

String temp = map.get(nodes[j]);

if (temp != null && !temp.equals("")) {

temp = temp + ";" + val;

} else {

temp = val;

}

map.put(nodes[j], temp);

}

}

}

}

}

}

}

return map;

}

}2.測試代碼

public static void main(String[] args) {

String link = "http://php.weather.sina.com.cn/xml.php?city=%D6%D8%C7%EC&password=DJOYnieT8234jlsK&day=0";

URL url;

String path = "test.xml";

try {

url = new URL(link);

System.out.println(url);

// InputStream inStream= url.openStream();

// InputStream inStream=new FileInputStream(new File("test.xml"));

XmlParser parser = new XmlParser(url);

String[] nodes = {"status1","temperature1","temperature2"};

Map map = parser.getValue(nodes);

System.out.println(map.get(nodes[0]));

} catch (MalformedURLException e) {

e.printStackTrace();

}

}3.結(jié)果

http://php.weather.sina.com.cn/xml.php?city=%D6%D8%C7%EC&password=DJOYnieT8234jlsK&day=0

status1:陣雨

temperature1:21

temperature2:18

陣雨

轉(zhuǎn)載學(xué)習(xí)作品,如若得罪版主。sorry。

有需要的話以下有原鏈接!

總結(jié)

以上是生活随笔為你收集整理的java 新浪天气预报接口_根据新浪天气API获取各地天气状况(Java实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。