我想要附加到文件,但我想在</xml>
标记结束之前开始追加。出现。我怎么能这样做?
var fs = require("fs");
fs.appendFile('somefile.xml', 'Content')
我有这样的但它插入了内容&#39;在文件的末尾,我希望它在具体的&#39;关键字&#39;
之前的特定行答案 0 :(得分:1)
这可能不是最简单的选择,但至少应该完成工作。 Haven未对其进行测试,因此可能需要进行一些更改。它会读取文件,完成后会创建新文件,方法是删除</xml>
标记,添加内容,然后再添加</xml>
标记。
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!');
});
});
答案 1 :(得分:1)
一种好方法是将文件拆分为包装文件和正文文件。包装器只包含最外层标记和对body文件的实体引用。然后,您的程序可以附加到正文文件的末尾,而任何以XML格式读取文件的人都应该读取包装文件。包装文件看起来像这样:
<!DOCTYPE xml [
<!ENTITY e SYSTEM "body.xml">
]>
<xml>&e;</xml>
使用&#34; xml&#34;顺便说一下,作为元素名称是不好的做法。所有名称均以&#34; xml&#34;开头。保留供W3C将来使用。
如果您在浏览器中阅读XML,则此方法可能无效。我认为有些浏览器&#39; XML解析器不支持外部实体。