我正在自己创作一个项目。我遇到了一个问题,希望你们中的一些人能帮助我。我想将某个网站的html表解析为android listview。我已经有了一些代码,但遗憾的是我没有在listview中看到表格数据。所以出了点问题。我希望你能帮助我。
我知道调用正确的数据,因为当我将代码放入safari控制台时,我会得到一个我选择的表的结果。所以我认为doc.select();是正确的。
遗憾的是,问题仍未解决,因为我收到了NetworkOnMainThreadException。我知道我必须对Async做点什么。我查看了更多网站,但我找不到关于异步的好解释。如果有人会帮助我,我们将不胜感激。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clubkampioenschappen_singleen_dubbel);
this.setTitle("Clubkampioenschappen Single en Dubbel");
ArrayList<String> list = new ArrayList<String>();
Document doc = null;
try {
doc = Jsoup.connect("https://tennisnaarden.planmysport.com/portal/page/pmsportal30/TVNaarden/Toernooien/Clubtoernooi").get();
} catch (IOException e) {
e.printStackTrace();
}
Elements elements = doc.select("#pcnt1383_8158836_1383_4326089_4326089 td:first-child");
//list.add("Onderdelen");
for(int i=0;i<elements.size();i++)
{
list.add(elements.get(i).text());
System.out.println(elements.get(i).text());
}
ListAdapter OnderdeelAdapater = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
ListView Onderdelen = (ListView) findViewById(R.id.Onderdelen);
Onderdelen.setAdapter(OnderdeelAdapater);
}
答案 0 :(得分:0)
如果选择正确,我们应该让HTML获得更多信息。 在我看来,你没有正确选择html标签。 您应该尝试在td上找到属性,以便您只能选择它们。 例如,如果主题是css类,您可以通过以下方式选择它:
Elements topicList = doc.select("h2.topic");
也许这个link对你有帮助(这是我关于JSOUP的帖子)。 希望它能帮到你!