我试图使用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());
}
}
答案 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);
上设置一个断点,以确保收到正确的内容。