我从网页上获取HTML并尝试从中检索数据。
我有像var g=svg.selectAll("g").data(dataSet) // <-- now changed from rect
.enter()
.append("g") // <-- and here
.attr ("transform", function(d,i) {
return "translate("+(i*35)+" 30)";
})
;
// texts n rects added here
g.append("text").text(function(el){
return el;
})
.attr("dy", "1em")
g.append("rect")
.attr("width", 30)
.attr("height", 30)
;
这样的HTML,我想用<h3><strong>title</strong><h3>
替换。
但是,有时我会在内容中找到意外的标签,例如:
<h2>
如何从字符串中删除空{h}标记,例如<h3><br/><strong>title</strong></h3>
和<p><br></p>
?
答案 0 :(得分:1)
你总是可以尝试在元素上使用jsoup的.text()方法来获取文本,并将它们放在h3中。
答案 1 :(得分:1)
要替换空元素,可以使用CSS选择器:empty
。在循环中这样做,因为包含空元素的元素不被视为空,但在下一次迭代中将被删除。
要用<h3><strong>...</strong><h3>
替换<h2><strong>...</strong><h2>
代码并删除<h3>
代码中的其他代码,请使用replaceWith
:
示例代码
Document doc = Jsoup.connect("url").get();
// clean up empty elements
while(!doc.select(":empty").isEmpty()){
doc.select(":empty").remove();
}
//replace h3 with h2
doc.select("h3 > strong").forEach(strong -> {
strong.parent().replaceWith(new Element(Tag.valueOf("h2"), "").html("<strong>" + strong.text() + "</strong>"));
});