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!