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

如何使用Jsoup将class为c45 c45v0的div标签替换为span标签?

解决Jsoup替换div标签为指定class的span标签问题

我看到你尝试用Jsoup替换<div class="c45 c45v0">为<span class="c6 c77">,但现有代码没达到预期效果,问题主要出在这两点:

  • 直接对elements调用tagName()是修改原集合的标签,而非选中的目标div元素
  • tagName()方法只接受纯标签名,不能带class后缀(比如"span.c6.c77"是错误用法)

正确实现步骤

我们需要遍历选中的每个目标div,分别修改标签名和class属性:

// 先定位所有目标div元素
Elements targetDivs = elements.select("div.c45.c45v0");

// 遍历每个div进行替换操作
for (Element div : targetDivs) {
    // 1. 将标签名从div改为span
    div.tagName("span");
    // 2. 替换class属性为目标值
    div.attr("class", "c6 c77");
}

代码解释

  1. 选择目标元素:通过select("div.c45.c45v0")精准定位需要替换的div
  2. 遍历修改:因为可能存在多个匹配元素,所以循环处理每个div
  3. 修改标签名:tagName("span")会保留元素的所有子节点(也就是你例子里的<p>标签)
  4. 替换class:attr("class", "c6 c77")会直接覆盖原有的class属性,达到预期的class值

执行这段代码后,你就能得到想要的结果:

<span class="c6 c77"> <p><span>J</span>oseph DeSimone made a bold move back</p> </span>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:30:42