简体   繁体   English

使用 Java 中的 Jsoup 提取 HTML 表(跨度)标签

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

I am trying to extract the td name and the span class.我正在尝试提取 td 名称和跨度 class。 In the sample code, I want to extract the a href with in the first td "accessory" and the span tag in the second td.在示例代码中,我想提取第一个 td“附件”中的 a href 和第二个 td 中的 span 标签。

I want to print Mouse, is-present, yes KeyBoard, No Dual-Monitor, is-present, Yes我想打印鼠标,存在,是 键盘,否 双显示器,存在,是

When I use the below Java code, I get, Mouse Yes Keyboard No Dual-Monitor Yes.当我使用下面的 Java 代码时,我得到,鼠标是键盘否双显示器是的。

How do I get the span class name?如何获得跨度 class 名称?

HTML Code 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 code Java码

private void printParse(String HTMLdata){私人无效打印解析(字符串HTML数据){

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

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


while(ite.hasnext()){

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

   }

}

if you get table element then all you you need is getting span.如果您获得表格元素,那么您所需要的只是获得跨度。 you don't need to get td becasue you can query using span and still get the same result.你不需要得到 td 因为你可以使用 span 查询并且仍然得到相同的结果。 below is the code snippet.下面是代码片段。

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

but make sure that you got table element.但请确保您有表格元素。

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

Elements results = table.select("td");元素结果 = 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