【问题标题】:Extracting data from table tag从表标签中提取数据
【发布时间】:2014-02-24 10:28:06
【问题描述】:

我想使用 jsoup 提取 td 标签中的数据。

在下面的代码中,“BAGALKOT”是城市名称,“KERUDI HOSPITAL RESEARCH CENTRE”是医院名称。

类似的城市名称和医院名称以表格结构多次出现在页面中。我想使用jsoup 提取这些数据。

谁能帮我提供一些java 代码。

<h2>Karnataka Hospitals List</h2>

    <tr bgcolor="#E4E4E4" height="40">
        <td height="40" align="center" class="whiteheading"><strong>Sl. No</strong></td>
        <td align="center" class="whiteheading"><strong class="whiteheading">City</strong></td>
        <td align="center" class="whiteheading"><strong>Hospital / Nursing Home</strong></td>
        <td align="center" class="whiteheading"><strong>Address</strong></td>
        <td align="center" class="whiteheading"><strong>State</strong></td>
    </tr>
    <tr height="60">
        <td width="64" align="left" bgcolor="#FFFFFF">1</td>
        <td class="copyrights" width="119" bgcolor="#FFFFFF">BAGALKOT</td>
        <td class="copyrights" width="211" bgcolor="#FFFFFF">KERUDI HOSPITAL    &amp; RESEARCH CENTRE</td>
        <td class="copyrights" bgcolor="#FFFFFF">EXTENSION,    HOSPITAL ROAD,BAGALKOT, KARNATAKA-587101.</td>
        <td class="copyrights" width="88" bgcolor="#FFFFFF">KARNATAKA</td>
    </tr>

【问题讨论】:

  • @PopoFibo 非常感谢...... :-) 它有效
  • 不客气,很高兴它成功了

标签: java html-parsing jsoup


【解决方案1】:

您可以使用 CSS 类名或标签名单独提取数据:

Elements headings = doc.select("td[class=whiteheading]");
        Elements data = doc.select("td[class=copyrights]");

        for (Element el : headings) {
            System.out.print(el.text() + "\t\t\t");
        }

        System.out.println();
        for (Element el : data) {
            System.out.print(el.text() + "\t");
        }

给予,

Sl. No          City            Hospital / Nursing Home         Address         State           
BAGALKOT    KERUDI HOSPITAL & RESEARCH CENTRE   EXTENSION, HOSPITAL ROAD,BAGALKOT, KARNATAKA-587101.    KARNATAKA

上面的代码将获取标题和数据的所有td标签值并将它们放到你的控制台中。序列号唯一的问题是它没有关联CSS 类。因此,另一个选项可以是仅根据标签名称进行选择,然后将它们过滤掉:

 Elements data = doc.select("td");

        for (Element el : data) {
            System.out.print(el.text() + "\t");
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2020-06-18
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多