在 Node.js 中使用 htmlparser2 选择 html 节点的文本内容

我想用Node.js 的htmlparser2模块解析一些 html 。我的任务是通过其 ID 找到一个精确的元素并提取其文本内容。


我已经阅读了文档(相当有限)并且我知道如何使用该onopentag函数设置我的解析器,但它只提供对标签名称及其属性的访问(我看不到文本)。该ontext函数从给定的 html 字符串中提取所有文本节点,但忽略所有标记。


所以这是我的代码。


const htmlparser = require("htmlparser2");

const file = '<h1 id="heading1">Some heading</h1><p>Foobar</p>';


const parser = new htmlparser.Parser({

  onopentag: function(name, attribs){

    if (attribs.id === "heading1"){

      console.log(/*how to extract text so I can get "Some heading" here*/);

    }

  },

   

  ontext: function(text){

    console.log(text); // Some heading \n Foobar

  }

});


parser.parseComplete(file);

我希望函数调用的输出是'Some heading'. 我相信有一些明显的解决方案,但不知何故我想念它。


谢谢你。


子衿沉夜
浏览 369回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript