<div class="orcl6w2">
<div class="orcl6w3">
<table >
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<td>
<center>
<strong>As Published In </strong>
</center>
</td>
</tr>
</tbody>
</table>
<h2>DEVELOPER: PL/SQL Practices</h2>
<hr />
<strong>Steven Feuerstein </strong>This has to be deleted
<em>Oracle PL/SQL Programming</em>This has to be deleted too.
</td>
</tr>
</tbody>
</table>
</div>
</div>
在这里,我想删除文本以及hr
标记后的标记。即,
<hr />
<strong>Steven Feuerstein </strong>This has to be deleted
<em>Oracle PL/SQL Programming</em>This has to be deleted too.
我尝试使用以下代码删除。但只有以下代码,我才能删除hr
标记之后的标记。但是我无法删除文本,即This has to be deleted
和This has to be deleted too.
。
if (elements.select("hr").size() > 0) {
final Element hrfound = elements.select("hr").last();
final int hrIdx = hrfound.siblingIndex();
for (Element e : hrfound.siblingElements()) {
if (e.siblingIndex() > hrIdx) {
e.remove();
}
}
}
请帮忙......
答案 0 :(得分:0)
您使用的方法(hrfound.siblingElements()
)仅获取Element
个对象,但您尝试删除的文本也属于Node
类型。我也不会尝试使用索引删除它们。相反,在找到hr
元素之后,您可以使用nextSibling()
方法获取之后的兄弟姐妹;它将选择类型Node
,因此它将同时获取元素和文本节点。
以下代码应该完成您要执行的操作:
while(hrfound.nextSibling() != null) {
hrfound.nextSibling().remove();
}