Hallo Leute, ich bin gerade halb am verzweifeln und hoffe jemand kann mir helfen ![]()
Ich möchte über eine URL, an die ich GPS Koordinaten übergebe, ein XML bekommen und dieses Parsen.
Das ganze läuft als Konsolenanwendung einwandfrei, hier mal der Code:
Java
private double lat;
private double lng;
.
.
.
try{
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder= factory.newDocumentBuilder();
URL url = new URL("http://api.geonames.org/findNearbyWikipedia?lat="+lat+"&lng="+lng+"&username=mein_username");
InputStream stream = url.openStream();
Document xmlDocument = builder.parse(stream);
NodeList titleNodes= xmlDocument.getElementsByTagName("title");
NodeList articleURLNodes= xmlDocument.getElementsByTagName("wikipediaUrl");
for(int i=0; i<titleNodes.getLength(); i++){
System.out.println("Artikel "+ (i+1)+": "+ titleNodes.item(i).getTextContent() + " " + articleURLNodes.item(i).getTextContent());
}
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
Alles anzeigen
Um das allerdings in Android umzusetzen muss ich AsyncTasks verwenden um keine NetworkOnMainThread Exception zu bekommen.
Leider werde ich aus der Doku nicht so schlau ![]()
Hier ist mal mein Ansatz, bei dem leider aber garnichts passiert:
Java
private class DownloadXMLTask extends AsyncTask<String, Void, Void> {
String wikiUrl;
URL url;
InputStream stream;
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
protected Void doInBackground(String... urls) {
try {
wikiUrl=urls[0];
url = new URL(wikiUrl);
InputStream stream = url.openStream();
builder = factory.newDocumentBuilder();
Document xmlDocument = builder.parse(stream);
NodeList titleNodes= xmlDocument.getElementsByTagName("title");
NodeList articleURLNodes= xmlDocument.getElementsByTagName("wikipediaUrl");
}catch(Exception ex){
System.out.println(ex.getMessage());
}
return null;
}
}
Alles anzeigen
Kann ich irgendwie die NodeLists zurückgeben und aus meiner Activity Klasse darauf zugreifen?
Würde mich sehr freuen wenn jemand helfen kann ![]()
Danke & Viele Grüße!