Java analysiert XML als Antwort
package org.main; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.zip.GZIPInputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Demo { public static GZIPInputStream getReponse(String _url) throws ClientProtocolException, IOException { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(_url); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); InputStream inputs=entity.getContent(); GZIPInputStream in = new GZIPInputStream(inputs); return in; } @SuppressWarnings("rawtypes") public static void main(String[] args) throws Exception { Map<String, String> map = new HashMap<String, String>(); SAXReader reader = new SAXReader(); Document document = reader.read(getReponse("http://wthrcdn.etouch.cn/WeatherApi?city=%E9%95%BF%E6%98%A5")); // 得到xml根元素 Element root = document.getRootElement(); // 得到根元素的所有子节点 List<Element> elementList = root.elements(); Iterator forecast = root.elementIterator("forecast"); if (forecast.hasNext()) { Element recordEless = (Element) forecast.next(); Iterator weather = recordEless.elementIterator("weather"); Element weatherNode = (Element) weather.next(); System.out.println(); System.out.println("date" + ":" + weatherNode.elementTextTrim("date")); System.out.println("high" + ":" + weatherNode.elementTextTrim("high")); System.out.println("low" + ":" + weatherNode.elementTextTrim("low")); Iterator weatherNodeChild = weatherNode.elementIterator("day"); Element dayNode = (Element) weatherNodeChild.next(); System.out.println(); System.out.println("type" + ":" + dayNode.elementTextTrim("type")); System.out.println("fengxiang" + ":" + dayNode.elementTextTrim("fengxiang")); System.out.println("fengli" + ":" + dayNode.elementTextTrim("fengli")); } Iterator zhishus = root.elementIterator("zhishus"); while(zhishus.hasNext()) { Element zhishusNode = (Element) zhishus.next(); Iterator zhishu = zhishusNode.elementIterator("zhishu"); while(zhishu.hasNext()) { Element zhishuNode = (Element) zhishu.next(); System.out.println(); System.out.println("name" + ":" + zhishuNode.elementTextTrim("name")); System.out.println("value" + ":" + zhishuNode.elementTextTrim("value")); System.out.println("detail" + ":" + zhishuNode.elementTextTrim("detail")); } } } }
Kürzlich eine Wetterabfragefunktion für eine öffentliche Plattform erstellt. Das Prinzip besteht darin, Daten von der Schnittstelle abzurufen und an den Benutzer zurückzugeben. Die hier verwendete Schnittstelle gibt Daten vom Typ XML zurück. Verwenden Sie also dom4j zum Parsen.
Ich habe ursprünglich über die Verwendung von Document document = reader.read(); nachgedacht.
Dann ist sein Parameter ein Eingabestream, also habe ich darüber nachgedacht, wie ich ihn erstellen soll Die Get-Anfrage, die ich erhalten habe, wurde auch in einen Stream umgewandelt und fand, dass es etwas lächerlich war ... Holen wir uns zuerst den Return-Stream des Res von
HttpGet httpget = new HttpGet(_url); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); InputStream inputs=entity.getContent();
und übergebe es direkt an die read();-Methode. Es wurde ein Fehler gefunden, der besagt, dass es sich um einen Codierungsfehler handelt. . . Ich war verwirrt, denn der direkte Zugriff über den Browser ist UTF-8-Kodierung, was zum Teufel. . .
Verwenden Sie später „entity.getContentEncoding()“, um zu drucken und festzustellen, dass der Rückgabestrom gzip-codiert ist... Ri...
Verwenden Dekomprimieren Sie es einfach mit der Dekomprimierung, die mit Java geliefert wird....
GZIPInputStream in = new GZIPInputStream(inputs);
Dieser Artikel stammt aus dem Blog „TheAuroraSec“. Bitte bewahren Sie diese Quelle unbedingt auf: http://aurorasec.blog.51cto. com/9752323/ 1859599

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

