在Node中将DOM树转换为HTML

3
我对Node非常陌生。我正在处理REST调用。我使用Postman(用于检查REST API调用)收到一个带有URL的请求。我需要对该URL的内容进行一些词级别的更改,例如:如果收到的URL是https://en.wikipedia.org/wiki/Main_Page,则需要获取其内容(当前正在使用页面上的get请求)并将所有小写的“the”更改为大写的“THE”。我需要进行许多这样的词级别更改。
为此,我在节点htmlparser2(https://www.npmjs.com/package/htmlparser2)中使用了htmlparser2.DomHandler()创建了HTML页面的DOM模型。我能够遍历DOM并更改单词。
现在,我有一个新的DOM,其中包含更改后的内容,我需要将其转换回HTML并将新的HTML作为响应发送回Postman(客户端),以便在自己的网页上显示更改后的内容。
我的问题是如何从在Node.js中使用html-parser2创建的DOM树中创建HTML。

PS:我可以发送原始的HTML内容,而无需创建DOM并显示原始内容。 DOM:文档对象模型

1个回答

0

只需使用htmlparser-to-html库。

安装它:

npm install --save htmlparser-to-html

需要它:

const html = require('htmlparser-to-html')

假设您解析了doctype标签并将结果DOM对象输出到console.log

[ { name: '!doctype',
    data: '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"',
    type: 'directive'} ]

使用函数html()将DOM对象转换:

html({ name: '!doctype',
       data: '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"',
       type: 'directive'})

结果 - 与您解析的相同标签:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接