继承人我想做什么
目标:删除带有声明和doctype标记的XML文档的管道流。
问题
第1部分。最好的办法是什么。我应该使用FS模块的createReadStream和createWriteStream方法吗?
第2部分。如何从一个流中删除文本并将其传输到另一个流中?
答案 0 :(得分:0)
您可以使用fs.createReadStream
和fs.createWriteStream
分别读取和写入xml数据。现在要删除一些文本,您需要一个可读写的双工流。在Node 0.10+中,您可以使用内置Transform Stream。这是一个使用Transform stream的简单代码:
var Transform = require('stream').Transform
var util = require('util');
var fs = require('fs')
util.inherits(MyTransform, Transform);
function MyTransform(options) {
if (!(this instanceof MyTransform))
return new MyTransform(options);
Transform.call(this, options);
// init Transform
Transform.call(this, options);
}
MyTransform.prototype._transform = function (chunk, encoding, done) {
//do your processing with chunk
this.push(chunk);
done();
};
rstream = fs.createReadStream('input.xml')
wstream = fs.createWriteStream('output.xml')
tstream = new MyTransform()
rstream
.pipe(tstream)
.pipe(wstream)