【问题标题】:Extract HTML Table ( span ) tags using Jsoup in Java在 Java 中使用 Jsoup 提取 HTML Table ( span ) 标签
【发布时间】:2011-07-20 21:46:10
【问题描述】:

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

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

当我使用下面的 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());

   }

}

【问题讨论】:

    标签: java html html-parsing jsoup


    【解决方案1】:

    如果您获得了表格元素,那么您所需要的只是获得跨度。你不需要得到 td 因为你可以使用 span 查询并且仍然得到相同的结果。下面是代码sn-p。

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

    但请确保您有表格元素。

    【讨论】:

      【解决方案2】:
      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"));
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多