获取第一个元素时出现奇怪的jsoup行为

时间:2016-10-05 21:14:35

标签: android exception jsoup

我是使用jsoup的新手,所以我不知道为什么会出现以下内容:

export class Tab1Page {

  constructor(public nav: NavController) {
  }

  editRecord(index){
    this.nav.push(MyCustomPage, {indexoEdit: index});
  }
}

所以,因为大小是1我想得到第一个元素,我改变代码如下:

...
Document doc = Jsoup.connect("http://4pda.ru").get();
Elements articleElems = doc.select("article.post");
for(Element article:articleElems)
{
    Element desc = article.select("div.description").first();
    Elements posts = desc.select("h1.list-post-title");
    Log.d(TAG,"size is "+posts.size()); // it's ok, size is 1
    ...
}

我无法理解这一点......

1 个答案:

答案 0 :(得分:2)

您正在选择没有h1.list-post-title的文章 您可以使用has()。这是关于has()的官方文件 :has(seletor): find elements that contain elements matching the selector

以下是具有

的解决方案
    Document doc = Jsoup.connect("http://4pda.ru").get();
    Elements articleElems = doc.select("article.post:has(h1.list-post-title)");
    for (Element article : articleElems) {
        Element desc = article.select("div.description").first();
        Element post = desc.select("h1.list-post-title").first();
        System.out.println(post);
    }