Jsoup表查询

时间:2012-01-23 23:27:57

标签: jsoup

我是一个不常见的程序员,我正在努力学习Java。我有一个我想做的网络项目,并且遇到了Jsoup看起来很棒 - 除了我无法从网页上得到我想要的东西(我确信答案非常简单)。某人(尽可能详细)可以解释我是如何从该表的行中提取280.00的吗? 10可用于标识唯一行(因为表中还有一些其他行)。

我最终得到了这段代码: -

// 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 个答案:

答案 0 :(得分: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,则在.tabletext中使用doc.select。你说这张桌子的名字是tabletext,所以这让我相信它是一个id而不是一个班级。