2016-04-15 4 views
0

Die Website: http://w1.weather.gov/xml/current_obs/index.xml; ist ein Index von US-Wetterstationen, die mit Lat/Lon-Koordinaten markiert sind und aktuelle lokale Wetterbeobachtungen liefern. Von den 2.257 Stationen in der Datei, die jeweils 10 Liniensegment sieht wie folgt aus:Suche und Analyse großer XML-Index von Tasker

<station> 
    <station_id>PADK</station_id> 
    <state>AK</state> 
    <station_name>Adak Island, Adak Airport</station_name> 
    <latitude>51.87778</latitude> 
    <longitude>-176.64583</longitude> 
    <html_url>http://weather.noaa.gov/weather/current/PADK.html</html_url> 
    <rss_url>http://weather.gov/xml/current_obs/PADK.rss</rss_url> 
    <xml_url>http://weather.gov/xml/current_obs/PADK.xml</xml_url> 
</station> 

Das Ziel ist die Android-Handy GPS und Karten Routeninformationen für die nächste Breite/Länge Spiel zu suchen, verwenden Sie dann im Dropdown-2-zeilig und verwenden Sie diesen RSS-Link zum Parsen und Weitergeben an einen TTS-Dienst. wie das Telefon für eine "Hände frei" Erfahrung während der Fahrt automatisiert wird. Von Tasker würde man normalerweise die Seite holen, die die globale var% HTTPD lädt und von dort aus analysiert, aber die Datei übersteigt bei weitem die variable Größenbeschränkung. Hat jemand eine geeignete Problemumgehung?

Antwort

0

sollten Sie HttpURLConnection wie verwenden:

URL url = new URL("http://w1.weather.gov/xml/current_obs/index.xml"); 
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 

Und dann InputStream erhalten und analysieren es SAX-Parser verwenden wie:

// get a new SAXParser 
SAXParser parser = factory.newSAXParser(); 
// parse the stream 
parser.parse(is, handler); 

Wo handler ist Ihre Klasse HandlerBase-Klasse erweitern.

SAX-Parser ist ein stream-basierter XML-Parser. Es gibt viele Beispiele für SAX Parser. Einfach Google sie.

+0

Es kann eine einfache Möglichkeit geben, die NWS XML-Indexdatei überhaupt zu verwenden. Eine Absicht von Google Maps, den nationalen Wetterdienst abzufragen. Jeder Standort verweist auf srh.noaa.gov/xxx, wobei die drei Buchstaben für diese Station im Standard-RSS-Link ersetzt werden können, z. B. "http://forecast.weather.gov/product.php?site=NWS&issuedby=" HGX & Produkt = AFD & Format = CI & Version = 1 & Glossar = 0 '(Wo HGX den Transmitter Houston/Galveston Station anzeigt.) Ich untersuche, wie man diesen Link aus den Informationen zum Kartenstandort aufnimmt. Lass dich wissen wie ich es mache. – ManagementCritic

+0

Entschuldigung. Ich weiß nicht, wie ich den gesamten Text des RSS-Links anzeigen soll. – ManagementCritic

+0

Sie sollten SAX-Parser schreiben, der Ihre Verbindung verarbeitet und dadurch ein Array von Stationen mit ihren Breiten-/Längengraden usw. erstellt. Basierend auf diesem Array können Sie das nächstliegende auswählen. – barmaley

Verwandte Themen