簡體   English   中英

使用 Java 中的 Jsoup 提取 HTML 表(跨度)標簽

[英]Extract HTML Table ( span ) tags using Jsoup in Java

我正在嘗試提取 td 名稱和跨度 class。 在示例代碼中,我想提取第一個 td“附件”中的 a href 和第二個 td 中的 span 標簽。

我想打印鼠標,存在,是 鍵盤,否 雙顯示器,存在,是

當我使用下面的 Java 代碼時,我得到,鼠標是鍵盤否雙顯示器是的。

如何獲得跨度 class 名稱?

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碼

私人無效打印解析(字符串HTML數據){

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

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


while(ite.hasnext()){

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

   }

}

如果您獲得表格元素,那么您所需要的只是獲得跨度。 你不需要得到 td 因為你可以使用 span 查詢並且仍然得到相同的結果。 下面是代碼片段。

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

但請確保您有表格元素。

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"));
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM