我尝试从我的程序中删除未使用的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>< 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 < 0.500 L
答案 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