如何用NodeJS替换标签的所有html代码?

时间:2016-10-18 20:32:46

标签: html node.js filesystems

基于:https://stackoverflow.com/a/14181136/3363138我做了相应的修改:

var fs = require('fs')
var desired_code = '<div>Desired Code</div>'

fs.readFile(file.html, 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }

  //Here I need to load all the body tag content, but how?
  var result = data.replace(<body>html tags to be replaced</body>, desired_code);

  fs.writeFile(file.html, result, 'utf8', function (err) {
     if (err) return console.log(err);
  });
});

在这个功能上我需要加载所有的body标签内容,但是我该怎么做呢?

var result = data.replace(<body>html tags to be replaced</body>, desired_code);

1 个答案:

答案 0 :(得分:2)

如果你想在html代码中改变一些字符串,我现在看到两个选项:

  • 你为此写了一个正则表达式(简单,快速,但不太干净和安全);
  • 你使用像cheerio.js这样的html解析器,改变你的节点&#34; body&#34;和stringify(更复杂但更安全和干净)。

对于第一个选项,例如: data = data.replace(/<body>(.*)<\/body>/, '<div>Hello world</div>');

对于第二个选项,例如:

parsed = cheerio.parse(data); parsed.find('body').html('<div>Hello world</div>'); data = cheerio.html();