【问题标题】:How to iterate over table and geting data within <td> tag without using id attribute of tabel in java如何在不使用 java 中表的 id 属性的情况下迭代表并在 <td> 标记中获取数据
【发布时间】:2012-02-06 15:04:14
【问题描述】:

我知道可以通过 getElementbyId(tableId) 来完成,但我这里没有 id 属性。表是这样的

     <table>
       <tr>
         <td>data</td>
       </tr>
       <tr>
         <td>data5</td>
       </tr>
       <tr>
         <td>data1</td>
         <td>data2</td>
       </tr>
     </table>

我正在使用 Htmlunit。有什么方法可以使用 htmlunit 或 java 或任何一些 api 获取&lt;td&gt;,JavaScript 是否可以工作我不确定。

【问题讨论】:

  • 你的html代码不好,能不能清理一下。
  • HTMLUnit 可以使用 xpath 来引用元素。阅读文档。

标签: java javascript html-parsing iteration htmlunit


【解决方案1】:

嘿,我正在为您提供在表格中查找数据的更好方法。
首先获取 HTML 表格行列表。 然后获取 HTML Table 列的列表并使用 for 循环和迭代表。

List<HtmlTableRow> tableRows = table.getRows();

List<HtmlTableCell> tableColumns = table.getRow(0).getCells();

for (int row = 0; row < tableRows.size(); row++)
 {

for (int column = 0; column < tableColumns.size(); column++)
{

// do your work Here 
    }
 }

【讨论】:

  • 逐行获取列数据
【解决方案2】:

Jsoup 会做所有你需要的 html 解析。 Jsoup 是一个用于处理 html 源代码的 java api。你可以得到

  1. 表格,您可以使用它解析每一行或每一列。
  2. 该 html 的所有链接和源导入列表(导入如 css 和 js 文件)。
  3. 特定标签的数据。

还有更多。

希望这会对你有所帮助。

【讨论】:

    【解决方案3】:

    使用javascript DOM遍历:

    var table = document.getElementsByTagName("table")[0];
    var tds = table.getElementsByTagName("td");
    for (var i = 0; i < tds.length; i++) {
      alert(tds[i].innerHTML);
    }
    

    在这里演示:http://jsfiddle.net/AMbk7/

    【讨论】:

      【解决方案4】:

      您可以使用 getElementsByTagName 在 JavaScript 中执行此操作。

      【讨论】:

        猜你喜欢
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多