jSoup从<span>类获取文本

时间:2016-06-27 09:01:21

标签: java parsing jsoup

我有一部分格式为

的html文件
<td class="yfnc_tabledata1">20,000</td>
<td class="yfnc_tabledata1">19,500</td>
<td class="yfnc_tabledata1"><span><span>19,000</span></span> - <span><span>19,600</span></span></td>
<td class="yfnc_tabledata1"><span>18,000</span> - <span>26,000</span></td>

还有其他span类。但我想仅获得3以下的值,这将被插入到数据库中。

19500

19000

19600

我试过了:

Elements elements = doc.select(".yfnc_tabledata1");
            for(Element e : elements) {
                System.out.println(e.text());                                           
            }

甚至我试过

doc.select(".yfnc_tabledata1").select("span");

仍然不起作用,请帮助。

1 个答案:

答案 0 :(得分:0)

如果你只想解析html的一部分来选择td标签,你至少要在开头添加一个table和tr标签。示例:

public class NewClass7 {

public static void main(String[] args)  {
String html = "<table>\n" +
                "<tr>" + 
                "<td class=\"yfnc_tabledata1\">20,000</td>\n" +
                "<td class=\"yfnc_tabledata1\">19,500</td>\n" +
                "<td class=\"yfnc_tabledata1\"><span><span>19,000</span></span> - <span><span>19,600</span></span></td>\n" +
                "<td class=\"yfnc_tabledata1\"><span>18,000</span> - <span>26,000</span></td>";

Document document = Jsoup.parse(html);
    Elements tds = document.select("td");
        for (Element e : tds) {
            if(e.text().startsWith("19"))
            System.out.println(e.text());
        }
}

}