Javascript 如何替换html文件中多个标记的内容?[Node.js]

Javascript 如何替换html文件中多个标记的内容?[Node.js],javascript,html,node.js,templates,Javascript,Html,Node.js,Templates,我们有html文件: <div class="my1">MY1</div> <h1 class="my2">MY2</h1> <p class="my3">MY3</p> <div class="my2">MY2</div> 结果必须是具有新值的新html文件 如何做到这一点?没有DOM Node.js没有任何文档对象模型(即DOM)的概念,因此无法访问实例化HTML元素的方法(为了解析HTML,最

我们有html文件:

<div class="my1">MY1</div>
<h1 class="my2">MY2</h1>
<p class="my3">MY3</p>
<div class="my2">MY2</div>
结果必须是具有新值的新html文件


如何做到这一点?没有DOM

Node.js没有任何文档对象模型(即DOM)的概念,因此无法访问实例化HTML元素的方法(为了解析HTML,最好访问该方法)

因此,您必须导入一个库以用作解析器(就像处理html时其他服务器端实现一样)


目前的领导者是

我不明白你为什么反对DOM构建,因为它很容易做到。有一些轻量级模块,如ChereIO,可以满足您的需求,并且有一个简单的API(类似于JQuery)

完全有效的示例 此示例正是您希望使用的

文件夹 替换.js

var fs=require('fs'))
,cheerio=需要('cheerio');
//我们正在处理的html文件
var htmlPath=uu dirname+'/htmlFile.html';
//将修改后的html输出到的html文件
var outPath=uu dirname+'/htmlFixed.html';
//使用replace值加载json文件
var replaceValues=require('./replaceValues.json');
readFile(htmlPath,{encoding:'utf8'},函数(错误,数据){
var$=cheerio.load(数据);//将HTML中的内容加载到cheerio中
for(替换值中的变量键){
//键是类名,使用它们来选择元素
//我们将修改并替换innerHTML内容
//这一因素
$('.+key).html(replaceValues[key]);
}
writeFile(outPath,$.html());
});
htmlFile.html

MY1
MY2

my3

MY2
replaceValues.json

{
“my1”:“新my1”,
“my2”:“新my2”,
“my3”:“新my3”
}
用法 结果 运行脚本后,您将在与原始HTML文件相同的目录中创建一个名为
htmlFixed.HTML
的新文件,并对内容进行更改:

新my1
新my2

新的my3

新my2
您对这个问题做过一些研究吗?当然,但没有找到简单的解释。您能解释一下原因吗?这是相对简单的,可以解决您的问题exercise@user3188101-这个词是“解析”。您需要解析文本文件中的HTML。为了解析它,必须将其加载到解析器中。这里没有“DOM构建”,它是在模拟DOM来解析你的文本文件。+1@TravisJ我一定是错过了你的答案,因为我昨天输入了我的答案。会为我节省一些时间;-)
{
    "my1":"new my1",
    "my2":"new my2",
    "my3":"new my3"
}
node replace.js