我想从下面的html中删除外部的两个div标签和两个span标签。
<div class="c44 c44v0">
<div class="c44w">
<blockquote>
<span class="c44-lquote">
<!-- # -->
</span>
<em>Being able to seamlessly integrate</em> with those providers via real-time data feeds.
<span class="c44-rquote">
<!-- # -->
</span>
</blockquote>
<div class="c44credit">Luke Kelly,<br /> Vice President of Finance, Carbon</div>
</div>
</div>
删除后应该看起来像
<blockquote>
<em>Being able to seamlessly integrate</em> with those providers via real-time data feeds.
</blockquote>
<div class="c44credit">Luke Kelly,<br /> Vice President of Finance, Carbon</div>
我尝试使用下面的代码
doc.select("div.c44 c44v0 > div.c44w").forEach(div -> {
div.parent().replaceWith(new Element(Tag.valueOf("div"), "").attr("align", "center").html(div.html()));
});
但是使用此代码我可以删除两个div标签,但我正在替换另一个div标签。有没有更好的方法可以完全删除两个div标签以及span标签....请帮助......
答案 0 :(得分:1)
这应该可以胜任。
首先删除span标记:
doc.select("span.c44-rquote").remove();
然后选择您要保留的元素:
Elements childs = doc.select("div.c44w > *");
删除带孩子的div:
doc.select("div.c44.c44v0").remove();
然后再添加要保留在原始div所在位置的元素:
for(Element e : childs) {
doc.select("body").first().appendChild(e);
}