Jsoup可以设置一组节点的父元素吗?我的意思是包装它,但没有每个匹配的元素 - 只创建一个父元素?所以我想在一个元素中包含更多元素?
示例:之前
<b>some text<i> blabla </i> other text </b>
在
<span id='something'><b>some text<i> blabla </i> other text </b></span>
<b>some te
<span id="cke_bm_69S" style="display: none;"> </span>
xt</b>
aaa
<i>bb
<span id="cke_bm_69S" style="display: none;"> </span>
b</i>
span标记是书签 - 开始选择和结束选择 - 从CKEDITOR添加。然后在服务器端我必须处理它。这是目标 - 添加最终跨度并删除临时跨度(书签):
<b>some te</b>
<span id="something"><b>
xt</b>
aaa
<i>bb
</i></span><i>
b</i>
如您所见,它必须解决标记交叉问题。
答案 0 :(得分:4)
public static void main(String... args) throws IOException {
Document document = Jsoup.parse("<div>"
+ "<b>some text<i> blabla </i> other text </b>" + "</div>");
Element b = document.select("b").first();
Element span = document.createElement("span");
span.attr("id", "something");
b.replaceWith(span);
span.appendChild(b);
System.out.println(document);
}
输出
<html>
<head></head>
<body>
<div>
<span id="something"><b>some text<i> blabla </i> other text </b></span>
</div>
</body>
</html>