2016-10-18 9 views
0

https://stackoverflow.com/a/14181136/3363138私でし対応の修正:<body>タグのすべてのHTMLコードをNodeJSに置き換えるにはどうすればよいですか?基づいて

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タグのコンテンツをロードする必要があり、この機能では

が、私はそれをどのように行うことができますか?あなたが文字列であるhtmlコードで何かを変更したい場合は

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

答えて

2

、私は今、二つのオプションを参照してください。

  • あなたはその(簡単、速い、あまり清潔で安全な)のための正規表現式を記述します;
  • cheerio.jsのようなhtmlパーサを使用して、ノード "body"を変更し、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();

+0

プラス1が、私は正規表現オプション – 1252748

+0

と感謝を反対します。この正規表現は私のために働く:/ (。| \ n)*? <\/body> / – Carlos

関連する問題