如何提取"价值"来自使用类名和jsoup的表标记

时间:2015-08-07 19:33:02

标签: java html parsing jsoup

当我尝试使用Table标签中的类名提取标签的值时,我得到这样的结果:

<input class="TGNDateInput" type="text" name="txtDate" size="10" maxlength="10" value="2015/08/06">

使用jsoup,我如何只提取日期值(&#34; 2015/08/06&#34;)?

这是我的代码:

System.out.println(table.getElementsByClass("criteriatext").get(1).getElementsByAttribute("value"));

网页上的实际表格:

<table BORDER=0 WIDTH=40%>
<tr>
<td class=criteriatext>Date:</td>
<td class=criteriatext>
<input class=DateInput type=text name=txtDate SIZE=10 MAXLENGTH=10 VALUE="2015/08/05">
  &nbsp;<span class=textsmall>(yyyy/mm/dd)</span>
</td>
</tr>
</table>

2 个答案:

答案 0 :(得分:4)

你应该直接使用选择器:

Element txtDateInput = document.select("input[name=txtDate]").first();
String txtDate = txtDateInput.attr("value");

答案 1 :(得分:1)

要从Element使用Element#attr("attributeName")获取属性的值,所以在您的情况下,它可以简单地在您的选择器之后添加它:

String date = table.getElementsByClass("criteriatext")
                   .get(1)
                   .getElementsByAttribute("value")
                   .attr("value");

System.out.println(date);// -> 2015/08/05

您也可以简单地选择放置在inputtd内的criteriatext,并将属性value添加为

String date = table.select("td.criteriatext > input[value]").attr("value");