DOM树到节点中的HTML

时间:2016-02-01 10:50:46

标签: node.js dom html-parser

我对节点很新。我正在研究REST调用。我收到了Postman的请求(使用它检查REST api调用)和URL。我需要对该URL的内容进行一些单词级别更改

例如,如果收到的网址是https://en.wikipedia.org/wiki/Main_Page我需要获取其内容(目前正在使用页面上的获取请求执行此操作)并将所有小的“the”更改为“THE”(captialised)。我需要进行许多这样的单词级别更改

为此,我使用节点htmlparser2(https://www.npmjs.com/package/htmlparser2)中的htmlparser2.DomHandler()创建了HTML页面的DOM模型。我能够遍历DOM并改变这个词。

现在我有了一个更新内容的新DOM,我需要将其转换回HTML并将新的html作为响应发送回postman(客户端)。这样我就可以在自己的网页上显示更改的内容

所以我的问题是如何从在node.js中的html-parser2中创建的DOM树创建HTML

PS:我可以在不制作DOM的情况下发送原始html并显示原始内容 DOM:文档对象模型

1 个答案:

答案 0 :(得分:0)

只需使用htmlparser-to-html库。

安装它:

.DisableDirectStreaming()

需要它:

npm install --save htmlparser-to-html

我们假设您解析了const html = require('htmlparser-to-html') 标记并将结果dom对象输出到doctype

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'} ] 转换dom对象:

html()

结果 - 您解析的标记相同:

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'})