2016-06-27 70 views
0
​​

我的HTML文件的一部分得到的文本下面格式jSoup從

<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> 

還有其他的跨度類。但是我想只獲得低於3的值,這將被插入到數據庫中。

我曾嘗試:

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

,甚至我想

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

仍然不能正常工作,請ķ明顯的幫助。

+0

你檢查,如果該文件是空 –

+0

我們怎麼讓只有三個值?您有四個具有完全相同屬性的不同值。 – ItzBenteThePig

+0

你可以試試:'doc.select(「td.yfnc_tabledata1」);' –

回答

0

如果您試圖僅解析html的一部分以選擇td標籤,您至少需要在開始時添加一個表和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()); 
     } 
} 

}