使用JavaScript从本地文件中读取和修改HTML

时间:2013-09-06 08:08:28

标签: javascript html node.js html-parsing

我想不出一个优雅的解决方案。但是,处理HTML文件,修改它并使用命令行上的脚本将其保存回来的最佳方法是什么?我想基本上运行这个脚本,证明HTML文件是一个参数,在每个data-test=<randomID>元素中添加<div>,然后将其保存回文件中。我以为我可以编写一个JavaScript脚本来执行node,但我不确定如何获取所提供文件的内容,或者将内容存储为什么。谢谢你的任何指示。

2 个答案:

答案 0 :(得分:3)

解决jsdom(感谢提示,user1600124):

var jsdom = require("jsdom"),
    fs = require('fs');

if (process.argv.length < 3) {
  console.log('Usage: node ' + process.argv[1] + ' FILENAME');
  process.exit(1);
}

var file = process.argv[2];
fs.readFile(file, 'utf8', function(err, data) {
    if (err) throw err;

    jsdom.env(
        data,
        ["http://code.jquery.com/jquery.js"],
        function (errors, window) {
            var $ = window.jQuery;

            $("p, li").each(function(){
                $(this).attr("data-test", "test");
            });
            $(".jsdom").remove();
            console.log( window.document.doctype + window.document.innerHTML );
            var output = window.document.doctype + window.document.innerHTML;

            fs.writeFile(file, output, function(err) {
                if (err) throw err;
                console.log('It\'s saved!');
            });
     });
});

答案 1 :(得分:0)

我如何理解您的问题,您需要一个程序来打开这些文件吗? 好吧,我自己使用Notepad ++,它对我来说非常好。