为什么Jsoup无法选择td元素?

时间:2011-11-02 18:52:59

标签: java html-parsing jsoup

我做了很少的测试(使用Jsoup 1.6.1):

String s = "" +Jsoup.parse("<td></td>").select("td").size();
System.out.println("Selected elements count : " + s);

输出:

Selected elements count : 0

但它应该返回1,因为我用td元素解析了html。我的代码有什么问题,或者Jsoup中有错误吗?

3 个答案:

答案 0 :(得分:3)

因为Jsoup是一个HTML5 compliant解析器,并且您使用无效的HTML进行了解析。 <td>必须至少进入<table>

int size = Jsoup.parse("<table><td></td></table>").select("td").size();
System.out.println("Selected elements count : " + size);

答案 1 :(得分:1)

String url = "http://foobar.com";
Document doc = Jsoup.connect(url).get();
Elements td = doc.select("td");

答案 2 :(得分:0)

Jsoup 1.6.2允许使用不同的解析器进行解析,并提供简单的XML解析器。使用以下代码我可以解决我的问题。您可以稍后使用HTML解析来解析您的片段,以获得有效的HTML。

// Jsoup 1.6.2
String s = "" + Jsoup.parse("<td></td>", "", Parser.xmlParser()).select("td").size();
System.out.println("Selected elements count : " + s);