JSoup如何解析表3行

时间:2015-02-24 13:04:07

标签: java html-parsing jsoup

我有一个这样的表格,我想要解析以获取row.id的数据代码值以及表格的第二和第三列。

<table>
    <tr class="id" data-code="100">
       <td></td>
       <td>18</td>
       <td class="name">John</td>
    <tr/>
    <tr class="id" data-code="200">
       <td></td>
       <td>21</td>
       <td class="name">Mark</td>
    <tr/>
</table>

我想打印出来。

100, 18, John
200, 21, Mark

我已尝试过此主题提出以下建议,但未选择任何内容how to parse a table from HTML using jsoup

URL url = new URL("http://www.myurl.com");
Document doc = Jsoup.parse(url, 3000);

Element tables = doc.select("table[class=id]");

for(Element table : tables)
{
     System.out.println(table.toString());
}

编辑:也尝试使用Jsoup.connect()而不是parse()

Document doc = null;
try
{
    doc = Jsoup.connect("http://www.myurl.com").get();
} 
catch (IOException e) 
{
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

试试这样:

URL url = new URL("http://www.myurl.com");
Document doc = Jsoup.parse(url, 3000);
// This should work now
Element tables = doc.select("table tr .id");
// This propably should work too
Element tables2 = doc.select("table tr[class*=id]");

for(Element table : tables)
{
     System.out.println(table.toString());
}

来自文档:

  

public elements select(String cssQuery)查找与之匹配的元素   选择器CSS查询,以此元素作为起始上下文。匹配   元素可以包括此元素或其任何子元素。这个   方法通常比DOM类型使用更强大   getElementBy *方法,因为可以组合多个过滤器,例如:   •el.select(&#34; a [href]&#34;) - 查找链接(带有href属性的标签)   •el.select(&#34; a [href * = example.com]&#34;) - 查找指向的链接   example.com(松散地)

     

请参阅Selector中的查询语法文档。

     

参数:cssQuery - 一个类似Selector CSS的查询返回:elements   匹配查询(如果没有匹配则为空)