作为一名航空爱好者,我正在尝试建立一个Android应用程序以获得METAR / TAF。其中一个项目活动的主要目标是前往https://www.aviationweather.gov/adds/metars/,并阅读用户选择的机场的METAR / TAF(METHEOROLOGICAL REPORTS)。
作为草案项目,我有以下xml(从网页上读取信息并将其粘贴到textViwe中):
TextView tv = (TextView) findViewById(R.id.textview1);
try{
HttpClient cliente = new DefaultHttpClient();
HttpPost poste = new HttpPost("https://www.aviationweather.gov/adds/metars/?station_ids=LELL&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&chk_tafs=on&submitmet=Submit");
HttpResponse respuesta = cliente.execute(poste);
HttpEntity entidad=respuesta.getEntity();
InputStream mensaje=entidad.getContent();
StringBuffer sb=new StringBuffer();
String linea;
BufferedReader br=new BufferedReader(new InputStreamReader(mensaje,"UTF-8"));
while((linea=br.readLine())!=null){
sb.append(linea);
sb.append("\n");
}
tv.setText(sb.toString());
mensaje.close();
最重要的是,我阅读了整个信息并获得了以下文字*,但我只想显示线条(METAR为红色,TAF为蓝色):
任何想法?
我在这个网站上尝试了很多代码,甚至尝试使用WebView访问网页,但我宁愿在文本视图中将文档信息显示为文本。
提前致谢,
SERGI
答案 0 :(得分:1)
您可以使用以下Jsoup来访问所需的文字
Document doc = Jsoup.connect("https://www.aviationweather.gov/adds/metars/?station_ids=LELL&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&chk_tafs=on&submitmet=Submit").get();
Elements fontTags = content.getElementsByTag("font");
for (Element fontTag : fontTags) {
String fontTagText = fontTag.text();
}
答案 1 :(得分:1)
最终代码:
Document doc = Jsoup.connect("https://www.aviationweather.gov/adds/metars/?station_ids=LELL&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&chk_tafs=on&submitmet=Submit").get();
Elements fontTags = doc.getElementsByTag("font");
for (org.jsoup.nodes.Element fontTag : fontTags){
String frase =fontTags.text();
TextView hola=(TextView)findViewById(R.id.hello);
hola.setText(frase);
}