我正在创建一个 Android 应用程序,它从 www.zamboangatoday.ph 收集数据,获取所有新闻标题或标题。但我只能检索一项,有人可以检查我的代码吗?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
outputTextView = (TextView)findViewById(R.id.textView1);
//Document doc = Jsoup.parse(html,"http://www.zamboangatoday.ph");
Document doc = Jsoup.connect("http://www.zamboangatoday.ph/").get();
//Elements tag = doc.select(".even h4 a");
Iterator<Element> iter = doc.select("li.even h4 a").iterator();
//List<Image> images = new ArrayList<Image>();
while(iter.hasNext())
{
Element element = iter.next();
outputTextView.setText(element.text());
}
}catch(Exception e)
{
e.printStackTrace();
}
}
最佳答案
不确定outputTextView
是什么组件,但使用以下代码:
outputTextView.setText(element.text());
您将设置文本,并在每次迭代时覆盖它。因此,在循环之后,将只有最后一个元素文本。如果可能,请使用类似 outputTextView.append(element.text());
- 否则使用 StringBuilder
并在循环后设置文本。
outputTextView = (TextView)findViewById(R.id.textView1);
//Document doc = Jsoup.parse(html,"http://www.zamboangatoday.ph");
Document doc = Jsoup.connect("http://www.zamboangatoday.ph/").get();
//Elements tag = doc.select(".even h4 a");
Iterator<Element> iter = doc.select("li.even h4 a").iterator();
//List<Image> images = new ArrayList<Image>();
while(iter.hasNext())
{
Element element = iter.next();
/*
* Append the text - don't overwrite it
* Node: Maybe you have to add a new line ('\n').
*/
outputTextView.append(element.text());
}
关于java - 使用jsoup解析网站数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194097/