📜  如何在 Node.js 中呈现 HTML 的纯文本?(1)

📅  最后修改于: 2023-12-03 15:08:43.631000             🧑  作者: Mango

如何在 Node.js 中呈现 HTML 的纯文本?

在 Node.js 中,我们可以使用一些模块来呈现 HTML 的纯文本,如 cheeriojsdomhtmlparser2 等,下面我们分别介绍一下它们的用法。

Cheerio

Cheerio 是一个类似于 jQuery 的模块,可以将 HTML 文本转化为 DOM 对象,从而方便地进行文本提取、查询等操作。

安装
npm install cheerio
代码示例
const cheerio = require('cheerio');
const html = '<html><body><p>Hello World!</p></body></html>';
const $ = cheerio.load(html);

console.log($('body').text()); // 输出:Hello World!

使用 cheerio.load() 方法将 HTML 文本转换成 DOM 对象,然后可以方便地使用 jQuery 风格的语法进行查询,如上例中的 $('body').text() 就是获取 body 元素的纯文本内容。

Jsdom

Jsdom 是一个浏览器 DOM 模拟库,可以在 Node.js 环境下使用,支持类似于 jQuery 的选择器 API,以及一些 DOM 操作方法。

安装
npm install jsdom
代码示例
const { JSDOM } = require('jsdom');
const html = '<html><body><p>Hello World!</p></body></html>';
const dom = new JSDOM(html);
const document = dom.window.document;

console.log(document.querySelector('body').textContent); // 输出:Hello World!

使用 new JSDOM() 方法将 HTML 文本转换成浏览器 DOM 对象,然后通过 dom.window.document 获取到文档对象,就能像在浏览器环境下一样进行 DOM 操作。

Htmlparser2

Htmlparser2 是一个非常灵活的 HTML 解析器,可以高效地处理 HTML 文本,可以根据需求进行自定义配置。

安装
npm install htmlparser2
代码示例
const htmlparser = require('htmlparser2');
const html = '<html><body><p>Hello World!</p></body></html>';
let result = '';

const parser = new htmlparser.Parser({
  ontext: (text) => {
    result += text;
  }
});

parser.write(html);
parser.end();

console.log(result); // 输出:Hello World!

使用 new htmlparser.Parser() 方法创建一个解析器对象,通过配置回调函数来获取解析过程中的数据,最终获取纯文本输出。

总结

以上就是在 Node.js 中呈现 HTML 的纯文本的三种方法,具体使用哪一种还需根据实际需求来选择。在实际开发中,我们还可以通过将 HTML 转换为 Markdown,再进行文本提取等操作,这种方法需要使用到一些 Markdown 转换工具,例如 markdown-itremark 等。