使用jsoup查找给定文本的元素

时间:2014-08-09 09:19:58

标签: java jsoup

我有一张像fiddle这样的表格。我需要找到与包含给定文本的行相关的数据。

table

例如,通过提供1707,我需要获取包含1707的表行中的所有数据。所以输出应该如下。

  

星期二2014-08-05 1707 33 43 47 52图像文字

目前,我正在访问html页面上的数据,如下所示。

    Document doc;
    try {
        doc = Jsoup
                .connect("url here").timeout(300000).userAgent("Mozilla").get();

        Element table = doc.select("table#customers").first();          
        if (table != null) {
            Iterator<Element> iterator = table.select("td").iterator();
            while (iterator.hasNext()) {
                System.out.println("Day : " + iterator.next().text());
                System.out.println("Date : " + iterator.next().text());                 
                System.out.println("Draw : " + iterator.next().text());                 
                System.out.println("No1 : " + iterator.next().text());
                System.out.println("No2 : " + iterator.next().text());
                System.out.println("No3 : " + iterator.next().text());
                System.out.println("No4 : " + iterator.next().text());
                System.out.println("Symbol : " + iterator.next().text());
                System.out.println("Non : " + iterator.next().text());
            }
        } else {
            System.out
                    .println("No results were found according to search criteria.");
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

上面的代码返回表格中的所有数据。但我需要获得与给定文本相关的数据。

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:3)

jsoup documentation所示,您可以使用伪选择器:contains(text)

table.select("tr:contains(1707) td")

您可以尝试here