1

我已经研究了几个带有类似问题的 Stack Overflow 主题。

我有以下问题:我有一个简单的 html 页面,下载并在本地保存为 .html 文件,我正在用 JSoup 解析它以读取该表的内容。不幸的是,当我用 .select("table") 查找我的表时,它没有返回任何元素。因此我已经对其进行了调试,我注意到的是......我的主体节点有一个子节点,它似乎完全是字符串,因此我假设我找不到任何表节点?

谁能帮帮我?

这是我的代码片段:

   for (Element table : doc.select("table.creditsuisse")) {
        for (Element row : table.select("tr")) {
            for (Element tds : row.select("td")){
                for(Element link : row.select("href")){
                    System.out.println(link.text());
                }
                System.out.println(tds.text());
            }
        }
    }

这是我的输入文件的样子:

<html>
<head>
</head>
<body>
<table class="creditsuisse" width="100%" cellspacing="0" cellpadding="0">
      <tbody>
    <tr>
        <th>Name</th>
        <th style="width:170px;">Funktion</th>
        <th style="width:180px;">
        Amtsdauer (Seit)        </th>
        <th style="width:130px;">Alter (Geburtsdatum)</th>
        <th style="width:45px;">Neuigkeit</th>
      </tr>
            <tr>

          <td>
            <a onclick="document.location='/u/p/al_thani_jassim_hamad_j_j-9293792/credit_suisse_ag_CH-020.3.923.549-1.htm'" href="/u/p/al_thani_jassim_hamad_j_j-9293792/credit_suisse_ag_CH-020.3.923.549-1.htm">Al-Thani Jassim Hamad J.J.</a> *&nbsp;<br>

          </td>

          <td>
                          VR-Mitglied           
          </td>
                    <td><a onclick="document.location='http://www.moneyhouse.ch/u/pub/credit_suisse_ag_CH-020.3.923.549-1.htm#28.06.2010'" href="/u/pub/credit_suisse_ag_CH-020.3.923.549-1.htm#28.06.2010">2 Jahre (28.06.2010)</a></td>
                  <td>-</td>
          <td align="center"></td>
        </tr>
            <tr>

          <td>
            <a onclick="document.location='/u/p/albers_franz-4438178/credit_suisse_ag_CH-020.3.923.549-1.htm'" href="/u/p/albers_franz-4438178/credit_suisse_ag_CH-020.3.923.549-1.htm">Albers Franz</a> *&nbsp;<br>

          </td>

          <td>
                          VR-Mitglied           
          </td>
                    <td><a onclick="document.location='http://www.moneyhouse.ch/u/pub/credit_suisse_ag_CH-020.3.923.549-1.htm#04.05.1998'" href="/u/pub/credit_suisse_ag_CH-020.3.923.549-1.htm#04.05.1998">14 Jahre (04.05.1998)</a></td>
                  <td>-</td>
          <td align="center"></td>
        </tr>
     </tbody>
</table>
</body>
</html>
4

2 回答 2

3

为了读取本地文件,JSoup您需要使用接受对象的parse 方法,File而不是接受 HTML 内容的方法。代替

Document doc = Jsoup.parse("C:\\...\\myFile.html", "UTF-8");

Document doc = Jsoup.parse(new File("C:\\...\\myFile.html"), "UTF-8");
于 2013-01-03T00:19:07.190 回答
0

你是如何阅读你的文件的?如果它只是一个字符串,那么您需要先将其转换为“文档”您可以尝试这样的事情:

Document document = Jsoup.parse(YOUR_STRING);
Elements elements = document.getElementsByTag("table");
Element table = elements[0];
于 2013-01-02T23:40:37.410 回答