Jsoup删除未使用的元素

时间:2016-10-21 16:41:10

标签: java html html-table jsoup

我尝试从我的程序中删除未使用的html标记和属性。

我已经拥有了所需的元素。但是这个结果中的一些元素是不需要的,它们必须被删除。如何删除它们?

Elements tes = doc.select("div.pd__content__row");
Elements spesifikasiProductContent = tes.select("[class=pd__spec__table]");
System.out.println(spesifikasiProductContent);

结果:

<table class="pd__spec__table">
<tbody> 
<tr> 
   <td>Isi</td> 
   <td>750ml</td> 
  </tr> 
  <tr> 
   <td>Material</td> 
   <td>Tritan Material, ABS Plastic</td> 
  </tr> 
  <tr> 
   <td>Dimensi</td> 
   <td>21 X 15 X 3 Cm</td> 
  </tr> 
  <tr> 
   <td>Lain-lain</td> 
   <td>Dimensi : A5 <br> min. -20C, Max. 120C</td> 
  </tr> 
  <tr> 
   <td>Sertifikasi</td> 
   <td>CE / EU, CIQ, EEC, FDA, LFGB, SGS</td> 
  </tr> 
  <tr> 
   <td>Volume</td> 
   <td>&lt; 0.500 L</td> 
  </tr> 
 </tbody> 
</table>

预期结果:

Isi 750ml
Material Tritan Material, ABS Plastic
Dimensi 21 X 15 X 3 Cm
Lain-lain
Dimensi : A5 <br> min. -20C, Max. 120C
Sertifikasi CE / EU, CIQ, EEC, FDA, LFGB, SGS
Volume &lt; 0.500 L

1 个答案:

答案 0 :(得分:1)

在行元素上使用text()方法获取文本节点:

  

public java.lang.String text()

     

获取此元素的组合文本   和它的所有孩子。空格被标准化和修剪。对于   例如,给定HTML <p>Hello <b>there</b> now! </p>p.text()返回   “你好,现在!”

     

<强>返回:

     

未编码的文本,如果没有则为空字符串。

示例代码

List<String> featureTitleCleaned = new ArrayList<>();
Elements tes = doc.select("div.pd__content__row");
Elements spesifikasiProductContent = tes.select("[class=pd__spec__table]");

String cleaned = "";
for (Element element : spesifikasiProductContent) {
    for (Element rowElement : element.select("tr")) {
        cleaned += rowElement.text()+"\n";
    }
    featureTitleCleaned.add(cleaned);
    cleaned = "";
}

for (String listElement : featureTitleCleaned) {
    System.out.println(listElement);
}

<强>输出

Isi 750ml
Material Tritan Material, ABS Plastic
Dimensi 21 X 15 X 3 Cm
Lain-lain Dimensi : A5 min. -20C, Max. 120C
Sertifikasi CE / EU, CIQ, EEC, FDA, LFGB, SGS
Volume < 0.500 L