我是一个不常见的程序员,我正在努力学习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>£0.00</td>
<td>£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>
答案 0 :(得分:1)
假设该表具有tabletext的id,这就是我编写它的方式:
String html =
"<table id='tabletext'>" +
"<tr align='center' style='background:#FFFFFF'>" +
"<td>10</td>" +
"<td>10.00</td>" +
"<td>£0.00</td>" +
"<td>£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而不是一个班级。