为什么用Jsoup 解析不到 <tr> 下面的<td>

雅音boy 发布于 2013/11/06 18:14
阅读 2K+
收藏 0
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * @author Administrator
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Document pasedDoc=Jsoup.parse("<tr><td>hello</td></tr>");
		Elements cells=pasedDoc.getElementsByTag("td");
		System.out.println(cells.toString());

	}

}

这是我用Jsoup解析Html的一个demo, 但是为什么解析不了<tr>下面的<td>呢?

如果解析<table>下面的<tr>就很成功啊。

换成如下代码,就可以顺利出来结果:

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Element pasedDoc=Jsoup.parse("<table><tr><td>hello</td></tr></table>");
		Elements cells=pasedDoc.getElementsByTag("tr");
		System.out.println(cells.toString());

	}

}

加载中
0
红薯
红薯
的确如此,我觉得应该是没有 <table> 的 <tr> 和 <td> 都是没意义的,所以被忽略了
0
红薯
红薯
你可以试试直接打印 pasedDoc 就会发现内容变成:
<html>
 <head></head>
 <body>
  hello
 </body>
</html>
雅音boy
雅音boy
我也试过这个,但是问题是我想解析的tr下面有好多个td,每个td含义不同,不能往下解析就很痛苦了
0
Timco
Timco
我以前也遇到过,做法就是用select改写一下吧。曲线救国。
雅音boy
雅音boy
现在我已经解决了,得到<td></td>后在外围加上<table></table>, 这是比较简单的曲线救国0
返回顶部
顶部