【问题标题】:how to extract "value" from a table tag using class name with jsoup如何使用带有jsoup的类名从表标签中提取“值”
【发布时间】:2015-08-07 19:33:01
【问题描述】:

当我尝试使用 Table 标记中的类名提取标记的值时,我得到如下信息:

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

使用 jsoup,如何仅提取日期值(“2015/08/06”)?

这是我的代码:

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>

【问题讨论】:

    标签: java html parsing jsoup


    【解决方案1】:

    你应该直接使用选择器来获取它:

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

    【讨论】:

    • 非常感谢 Nitesh 的帮助。如果没有提到“价值”或“名称”属性,您能否建议如何获得价值。比如

      Asof  2015 Aug 06 10:00:00

      ...我需要提取“2015 Aug 06 10:00:00”
    • 使用类选择器获取值
    • 喜欢这个 doc.select("p.AsOfDate").text()
    • 非常感谢 Nitesh。有用。我希望 p.class “p” 用于 para 标记。如果我错了,请纠正我。
    【解决方案2】:

    要从元素中获取属性值,请使用Element#attr("attributeName"),因此在您的情况下,它可以简单地将其添加到您的选择器之后,例如:

    String date = table.getElementsByClass("criteriatext")
                       .get(1)
                       .getElementsByAttribute("value")
                       .attr("value");
    
    System.out.println(date);// -> 2015/08/05
    

    您也可以简单地选择input,它位于criteriatext 类的td 内,并具有value 之类的属性

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多