1

同様の質問で、いくつかの Stack Overflow トピックを既に調べました。

次の問題があります。単純な html ページをダウンロードして .html ファイルとしてローカルに保存しました。そのテーブルの内容を読み取るために JSoup で解析しています。残念ながら、 .select("table") でテーブルを探すと、要素が返されません。したがって、私はそれをデバッグしました、私が気付くことができるのは...私のボディノードには1つの子ノードがあり、これは文字列のみのように見えるため、テーブルノードが見つからないと思いますか?

誰でも私を助けてもらえますか?

ここに私のコードスニペットがあります:

   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

ローカル ファイルを読み取るには、HTML コンテンツを取得するメソッドではなく、オブジェクトを取得する parse メソッドJSoupを使用する必要があります。交換File

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 に答える