我有一个有效的URL,但我不能像普通Java那样将其内容解析为字符串。我对android很新。大多数情况下,我将我的普通Java代码转换为android Java,这段代码在Java NetBeans中完美运行,但在Android Studio中则无法运行。
P.S.编译器/在运行时期间没有错误甚至警告。它只是不起作用,当我检查字符串长度为“天气”时它是0。
String weather="";
try {
weather = new Scanner(new URL("http://api.openweathermap.org/data/2.5/forecast?lat="+lat+"&lon="+longi+"&units=metric&mode=xml").openStream(), "UTF-8").useDelimiter("\\A").next();
} catch (Exception e) {
}
答案 0 :(得分:0)
您可以使用Jsoup.查看其“cookbook”获取教程和更多信息,但这是一个简单的示例:
String WeatherString; //Declare earlier in code - Before "onCreate" method.
@Override
protected Void doInBackground(Void... unused) {
org.jsoup.nodes.Document doc = null;
try {
doc = Jsoup.connect("http://api.openweathermap.org/data/2.5/forecast").get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
WeatherString = doc.select("dl#weather dt + dd + dt + dd ").first().text(); //Input here where the xml code is that you want to parse to a string
return null;
}
此代码位于AsyncTask
内。希望这可以帮助。再次,请参阅Jsoup网站上的“食谱”以获取更多信息。