You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Jsoup将HTML文档的body内容包裹到表格单元格中

解决方法

你的问题出在拼接HTML字符串的逻辑错误,导致原body内容被放到了表格外部。正确的做法是利用Jsoup的DOM操作API,直接将body内的元素移动到表格单元格中,而不是手动拼接字符串。

正确代码示例:

Document ht = Jsoup.parse(test);
Element body = ht.body();

// 创建表格相关元素
Element table = ht.createElement("table");
Element tr = ht.createElement("tr");
Element td = ht.createElement("td");

// 将body内的所有子元素移动到td中
while (body.childNodeSize() > 0) {
    td.appendChild(body.child(0));
}

// 组装表格结构并添加到body
tr.appendChild(td);
table.appendChild(tr);
body.appendChild(table);

// 输出结果
System.out.println(ht.html());

代码说明:

  • 先创建table、tr、td元素,避免手动拼接HTML字符串可能出现的格式错误。
  • 通过while循环把body里的所有子元素逐个移动到td中,确保原内容完全被包裹在单元格内。
  • 最后把组装好的表格添加到空的body中,完成结构改造。

为什么你的代码失效?

你原来的代码里,拼接的字符串是:

"<table><tr><td></td>" + ht.body().html() + "</td></tr></table>"

这相当于把原body内容放在了</td>之后,也就是表格的外部,自然会出现内容和表格同级的情况。用Jsoup的DOM移动操作能更精准地控制元素层级,避免这类问题。

内容的提问来源于stack exchange,提问作者RKodakandla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:51:27