Javascript 如何附加到文件的某一行?

Javascript 如何附加到文件的某一行?,javascript,xml,node.js,Javascript,Xml,Node.js,我想追加到文件,但我想在标记结束之前开始追加。出现。我该怎么做 var fs = require("fs"); fs.appendFile('somefile.xml', 'Content') 我有这样的东西,但它在文件末尾插入“内容”,我希望它在特定的“关键字”之前的特定行中。这可能不是最简单的选择,但至少它应该能完成工作。尚未对其进行测试,因此可能需要进行一些更改。它读取文件,完成后,通过删除标记,添加内容,然后在末尾再次添加标记来创建新文件 var fs = require('fs');

我想追加到文件,但我想在标记结束之前开始追加。出现。我该怎么做

var fs = require("fs");
fs.appendFile('somefile.xml', 'Content')

我有这样的东西,但它在文件末尾插入“内容”,我希望它在特定的“关键字”之前的特定行中。

这可能不是最简单的选择,但至少它应该能完成工作。尚未对其进行测试,因此可能需要进行一些更改。它读取文件,完成后,通过删除
标记,添加内容,然后在末尾再次添加
标记来创建新文件

var fs = require('fs');

var xmlFile;
fs.readFile('someFile.xml', function (err, data) {
  if (err) throw err;
  xmlFile = data;

  var newXmlFile = xmlFile.replace('</xml>', '') + 'Content' + '</xml>';

  fs.writeFile('someFile.xml', newXmlFile, function (err) {
    if (err) throw err;
    console.log('Done!');
  }); 
});
var fs=require('fs');
var-xmlFile;
fs.readFile('someFile.xml',函数(err,data){
如果(错误)抛出错误;
xmlFile=数据;
var newXmlFile=xmlFile.replace(“”,)+“内容”+“”;
writeFile('someFile.xml',newXmlFile,function(err){
如果(错误)抛出错误;
console.log('Done!');
}); 
});

一个好方法是将文件拆分为包装文件和正文文件。包装器只包含最外层的标记和对主体文件的实体引用。然后,您的程序可以附加到主体文件的末尾,而任何以XML形式读取该文件的人都应该读取包装文件。包装文件将如下所示:

<!DOCTYPE xml [
<!ENTITY e SYSTEM "body.xml">
]>
<xml>&e;</xml>

&e;
顺便说一下,使用“xml”作为元素名是一种不好的做法。所有以“xml”开头的名称都保留供W3C将来使用


如果在浏览器中读取XML,这种方法可能不起作用。我认为一些浏览器的XML解析器不支持外部实体。

好的,所以基本上我只需要替换并再次添加。当需要的时候,简单的解决方案永远不会出现在脑海中;太多了,是的,至少这是我想到的。如果您确信
保证是文件中的最后一行,那么可能会有更好的解决方案。@cgf如果最后一行始终相同,那么算法不会进行字符串匹配,因此速度更快,您能否详细说明更好的解决方案