Quiero borrar algunas etiquetas de un documento html así:
const { JSDOM } = require('jsdom'); function clearAnchorTags(pDom: JSDOM) { if (typeof pDom === 'string') { pDom = new JSDOM(pDom); } // Get all anchor tags from dom for (const anchorTag of pDom.window.document.querySelectorAll('a')) { for (const child of anchorTag.children) { if (child.nodeName === 'EM') { const node = pDom.window.document.createTextNode(child.textContent); anchorTag.replaceChild(node, child); } if (child.nodeName === 'B') { const node = pDom.window.document.createTextNode(child.textContent); anchorTag.replaceChild(node, child); } if (child.nodeName === 'U') { const node = pDom.window.document.createTextNode(child.textContent); anchorTag.replaceChild(node, child); } } } // return as string just as we received it -- also replace with space return pDom.serialize().replace(/ /g, ' '); }El problema parece ser el método serialize() aquí al final, ya que devuelve un documento HTML con todas las funciones.
Lo necesito sin las etiquetas <html>, <head> and <body> . Solo necesito un fragmento de HTML.
Resolví mi problema usando
return pDom.window.document.body.innerHTML.replace(/ /g, ' ');