这是我尝试做
的目标:删除声明和 doctype 标记的 XML 文档管道流。
问题
第 1 部分。解决此问题的最佳方法是什么。我应该使用 FS 模块的 createReadStream 和 createWriteStream 方法吗?
第 2 部分。如何从一个流中删除文本并将其通过管道传输到另一个流中?
问问题
161 次
1 回答
0
您可以使用fs.createReadStream
和fs.createWriteStream
分别读取和写入 xml 数据。现在要删除一些文本,您需要一个可读写的双工流。在 Node 0.10+ 中,您可以使用内置的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)
于 2015-07-10T20:56:52.107 回答