gpt4 book ai didi

java - 从 Android 网站解析

转载 作者:行者123 更新时间:2023-11-30 03:10:45 27 4
gpt4 key购买 nike

我正在尝试解析此网站:http://sbaftv.superdriver.it/ro/asp/ricercaorari.asp?user=FTV1&CodProfilo=1&VisInternet=1&visnota=0特别是 Comune di PartenzaComune di Arrivo 中的选项,但我做不到。这是代码:

public class MainActivity extends Activity {

ListView lista;
static final String BLOG_URL = "http://sbaftv.superdriver.it/ro/asp/ricercaorari.asp?user=FTV1&CodProfilo=1&VisInternet=1&visnota=0";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

lista = (ListView)this.findViewById(R.id.main_lista);//recupero lista da id

//creo ed eseguo l'asynctask
ParsingPaginaWeb parsing = new ParsingPaginaWeb();
parsing.execute("");
}

private class ParsingPaginaWeb extends AsyncTask<String,String,String> {

ArrayList<String> titoli; //lista dei titoli
//ArrayList<String> descrizioni; //lista delle descrizioni

@Override
protected void onPreExecute()
{
//prima di eseguire il parsing inizializzo gli arraylist
titoli = new ArrayList<String>();
//descrizioni = new ArrayList<String>();
}

@Override
protected String doInBackground(String... params) {
try {

Document doc = Jsoup.connect(BLOG_URL).get(); //E' il sito dove faccio il parsing
// prelevo l'h3 cioè il titolo di ogni sezione e poi ciclo tutto
Elements nodeBlogStats = doc.select("div.comunePartINI");
for(Element sezione : nodeBlogStats)//per ogni sezione tra gli elementi ricavati prima
{

titoli.add(sezione.text());
//descrizioni.add(descrizione);

}
} catch (Exception e) {
// In caso di errore
Log.e("ESEMPIO", "ERRORE NEL PARSING");
}
return null;
}

@Override
protected void onPostExecute(String result)
{
// dopo che ho eseguito il parsing mostro i dati nella listview
// usando il custom array adpater ParsingArrayAdapter
ParsingArrayAdapter adapter = new ParsingArrayAdapter(MainActivity.this, titoli);
lista.setAdapter(adapter);
}

}

}

应用程序显示一个空 Activity 。有什么想法吗?

最佳答案

那是因为你没有正确解析数据。它返回零元素。我修改了你的解析代码。以下代码提取了 Comune di Partenza 的所有选项。

在您的 try block 中使用以下代码

doc = Jsoup.connect(BLOG_URL).get();
Elements nodeBlogStats = doc.select("#comunePartINI > option");
for(Element sezione : nodeBlogStats)
{
titoli.add(sezione.text());
}

还有一个很好的做法是从 asynctask 返回结果并在 onPostExecute 中使用它,而不是定义一个类的字段然后修改它。

关于java - 从 Android 网站解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21019536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com