如何用Java的Jsoup将所有标题标签替换为h4标签?
如何用Jsoup将所有H系列标签替换为H4标签(不使用正则)
Jsoup的DOM操作API可以直接修改元素的标签名,无需正则表达式,步骤非常简单:
- 解析HTML:将目标HTML字符串转换成Jsoup的
Document对象。 - 选中所有H系列标签:通过CSS选择器
h1, h2, h3, h4, h5, h6筛选出所有标题元素。 - 修改标签名:遍历选中的元素,直接调用
tagName("h4")修改标签类型,原元素的属性、文本内容和嵌套结构都会完整保留。
完整代码示例
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public class HeadingReplacer { public static void main(String[] args) { // 输入的HTML内容 String inputHtml = "<!DOCTYPE html>\n" + "<html>\n" + "<body>\n" + "\n" + "<h2> heading here </h2>\n" + "<p>This is a paragraph.</p>\n" + "<p>This is another paragraph.</p>\n" + "<h3> heading here again </h3>\n" + "<p>This is another another paragraph.</p>\n" + "<h4> heading here again </h4>\n" + "</body>\n" + "</html>"; // 解析HTML为Document对象 Document doc = Jsoup.parse(inputHtml); // 选中所有h1到h6标签 Elements allHeadings = doc.select("h1, h2, h3, h4, h5, h6"); // 遍历修改每个标签为h4 allHeadings.forEach(heading -> heading.tagName("h4")); // 输出转换后的HTML System.out.println(doc.html()); } }
说明
tagName("h4")方法会直接修改元素的标签类型,原元素的所有属性(比如class、id)、文本内容以及内部嵌套元素都会完整保留。- 即使原标签已经是
h4,执行该方法也不会产生任何副作用,无需额外判断。 - 转换后的HTML会自动保持正确的结构,不需要手动拼接标签。
内容的提问来源于stack exchange,提问作者xerxes01
相关产品推荐
相关产品推荐

