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

标签 javascript html node.js html-parsing

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

最佳答案

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!');
            });
     });
});

关于javascript - 使用 JavaScript 从本地文件读取和修改 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18652901/

相关文章:

javascript - 如何在 Shopify 上默认选择输入列表的第一个单选按钮选项?

javascript - 当屏幕方向改变时重新运行 javascript 函数

javascript - gcloud-node - 如何确保通过签名 URL 上传到 Google Cloud Storage 的文件是公开可读的?

Node.js 和全局 MySQL 连接 OBJ

javascript - 为多个标签提供相同的 ID 是一种好习惯吗?

javascript - 使用 javascript 创建 div 后无法将样式应用于我的网格

javascript - Chuck Norris 推特小部件在 IE 上失去了风格

html - Bootstrap 的导航和页脚问题

Javascript 选择 child 的 child ?

node.js - 使用 'forever' 仍然是将 NodeJS 作为 linux/unix 服务运行的建议方法吗?