使用Java中的Jsoup提取HTML表(span)标记

时间:2011-07-20 21:46:10

标签: java html html-parsing jsoup

我正在尝试提取td名称和span类。 在示例代码中,我想在第一个td“附件”中提取a href,在第二个td中提取span标记。

我想要打印 鼠标,存在,是的 KeyBoard,没有 双显示器,存在,是

当我使用下面的Java代码时,我明白了 鼠标是的 键盘号 双显示器是。

如何获取span类名?

  

HTML代码

   

<tr> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory">Mouse</a> 
  </td> 

 <td class="tright "> 
    <span class='is_present'>Yes</span><br/> 

 </td> 
 <td class="tright "> 
    &nbsp;<br/> 

 </td> 

<tr> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory"> KeyBoard</a> 
  </td> 


  <td colspan="2" class="" style='text-align:center;'> 
    <small>No</small> 
  </td> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory">Dual-Monitor</a> 
  </td> 

  <td class="tright "> 
    <span class='is_present'>Yes</span><br/> 

 </td> 
 <td class="tright "> 
    &nbsp;<br/> 

</td> 

     

  

Java代码

private void printParse(String HTMLdata){

Element table = data.select("table[class="computer_table").first();

Iterator<Element> ite = table.select("td").iterator();


while(ite.hasnext()){

      sysout(ite.next().text());

   }

}

2 个答案:

答案 0 :(得分:1)

如果你得到了table元素,那么你所需要的就是获得跨度。你不需要得到td因为你可以使用span查询并仍然得到相同的结果。下面是代码片段。

Elements span = table.select("span");
    for (Element src : span) {
        if (src.tagName().equals("span"))
            System.out.print( src.attr("class") );
    }

但要确保你有表格元素。

答案 1 :(得分:0)

Element table = doc.select("table[id=computer_table]").first();

元素结果= table.select(“td”);

        for (Element dl : results) {
            if(!dl.text().equals("") && dl.text().length() > 1)
                pNames.add(dl.text());

            if((!dl.select("small").text().equals("")) && dl.select("small").text().length() > 1)
                emails.add((dl.select("small").text()));

            if(!dl.select("span").attr("class").equals("") && dl.select("span").attr("class").length() > 1)
                moneyDollars.add(dl.select("span").attr("class"));
        }