Jsoup总是返回null

时间:2017-10-19 08:50:59

标签: java jsoup

我试图使用Jsoup从HTML字符串中提取数据,但没有成功。 HTML代码是

<form>
<table>
    <tr>
        <th>First</th>
        <th>Second</th>
        <th>Third</th>
    </tr>
    <tr>
        <td><input type="text" name="elems[][f]" value="one" /></td>
        <td><input type="text" name="people[][s]" value="two" /></td>
        <td><input type="text" name="people[][t]" value="three" /></td>
    </tr>
    <tr>
        <td><input type="text" name="elems[][f]" value="one1" /></td>
        <td><input type="text" name="people[][s]" value="two2" /></td>
        <td><input type="text" name="people[][t]" value="three3" /></td>
    </tr>
</table>
<input type="submit" value="next" />

我尝试了不同的案例,但没有。我将从th和每个td检索数据。这是&#34; th&#34;:

的一个例子
Document document = Jsoup.parse(HTMLSTring);

    Elements tables = document.select("table");
    for (Element table : tables){
        Elements ths = table.getElementsByTag("th");
        for(Element th : ths)
        {
            System.out.println(th.text());
        }
    }

1 个答案:

答案 0 :(得分:1)

您的代码有效..

如果将html输入放入这样的String变量中:

public static void main(String[] args) {
    String HTMLSTring= "<form><table><tr><th>First</th><th>Second</th><th>Third</th></tr><tr><td><input type=\"text\" name=\"elems[][f]\" value=\"one\" /></td><td><input type=\"text\" name=\"people[][s]\" value=\"two\" /></td><td><input type=\"text\" name=\"people[][t]\" value=\"three\" /></td></tr><tr><td><input type=\"text\" name=\"elems[][f]\" value=\"one1\" /></td><td><input type=\"text\" name=\"people[][s]\" value=\"two2\" /></td><td><input type=\"text\" name=\"people[][t]\" value=\"three3\" /></td></tr></table><input type=\"submit\" value=\"next\" />";

    Document document = Jsoup.parse(HTMLSTring);
    Elements tables = document.select("table");
    for (Element table : tables){
        Elements ths = table.getElementsByTag("th");
        for(Element th : ths)
        {
            System.out.println(th.text());
        }
    }
}

您将获得预期的结果。

  • 第一
  • 第二
  • 第三

您在阅读html输入时可能会遇到问题。

例如在Document document = Jsoup.parse(HTMLSTring);上设置一个断点,以确保收到正确的内容。