node. js使div标签替换为p标签

用node. js命令行,使div标签替换为p标签,同时将class设置为list

var divTags=document.getElementsByTagName('div');
for(i=0;i<divTags.length;)
{
    var div=divTags[i],
    p=document.createElement('p');
    p.setAttribute("class", "list");
    div.parentNode.replaceChild(p, div);
}

借助cheerio解析DOM

import { readFileSync, writeFileSync } from 'fs'
import  * as cheerio from 'cheerio'
import type { Element } from 'cheerio'

function replaceTag(html: string, targetTag = 'div', replaceTag = 'p') {
  const $ = cheerio.load(html)
  $(targetTag).each((i, item) => {
    if ((item as Element).tagName) {
      (item as Element).tagName = replaceTag
    }
    $(item).addClass('list')
  })
  return $.html()
}

function getHTML(file: string): string {
  return readFileSync(file, { encoding: 'utf8' })
}

function writeHTML(file: string, html: string) {
  writeFileSync(file, html)
}

const HTML = getHTML('./index.html')

const replaceHTML = replaceTag(HTML)

writeHTML('./replace.html', replaceHTML)