2012-01-23 53 views
0

我是一個罕見的程序員,我正在嘗試學習Java。我有一個網絡項目,我想要做的,並且碰到了Jsoup,這看起來很好 - 除了我無法從網頁上得到我想要的(我確信答案很簡單)。可以有人(儘可能多的細節)解釋我如何從這張表的行中提取280.00? 10可以用來識別唯一的行(因爲表中還有其他幾行)。Jsoup表查詢

我已經結束了與此代碼: -

// Take the 3rd column of the table called tabletext and extract the 3rd element only 

Elements entry =document.select(".tabletextd:eq(3)").eq(2); 
System.out.println(entry.text()); 

是不是合理或是否有更好的辦法?

感謝,

馬克

<tr align="center" style="background:#FFFFFF"> 
    <td>10</td> 
    <td>10.00</td> 
    <td>&pound;0.00</td> 
    <td>&pound;280.00</td> 
     <td> 
     <a href="/cart.php?action=add&qty=10&id=2628" title="Click here to add this item to your cart"> 
     <img alt="Click here to add this item to your cart" src="/images/addtocart.gif" border="0" /> 
     </a> 
    </td> 
</tr> 

回答

1

假設表有tabletext的ID,這是我如何編碼它:

String html = 
      "<table id='tabletext'>" + 
      "<tr align='center' style='background:#FFFFFF'>" + 
      "<td>10</td>" + 
      "<td>10.00</td>" + 
      "<td>&pound;0.00</td>" + 
      "<td>&pound;280.00</td>" + 
      "<td>" + 
      "<a href='/cart.php?action=add&qty=10&id=2628' title='Click here to add this item to your cart'>" + 
      "<img alt='Click here to add this item to your cart' src='/images/addtocart.gif' border='0' />" + 
      "</a>" + 
      "</td>" + 
      "</tr>" + 
      "</table>"; 
    Document doc = Jsoup.parseBodyFragment(html); 

    Elements elements = doc.select("#tabletext > tbody > tr > td"); 
    Element e = elements.get(3); //this is the 4th column 
    System.out.println(e.text()); 

如果有一類tabletext的,然後在doc.select中使用.tabletext。你說桌子的名字是tabletext,所以這讓我相信這是一個id和一個階級。