【问题标题】:Create a stream of XML document with declaration and doctype tags removed创建删除声明和 doctype 标记的 XML 文档流
【发布时间】:2015-09-29 10:29:16
【问题描述】:

这就是我想要做的事情
目标:删除声明和 doctype 标记的 XML 文档管道流。
问题
第 1 部分。解决此问题的最佳方法是什么。我应该使用 FS 模块的 createReadStream 和 createWriteStream 方法吗?
第 2 部分。如何从一个流中删除文本并将其通过管道传输到另一个流中?

【问题讨论】:

    标签: xml node.js node.js-stream


    【解决方案1】:

    您可以使用fs.createReadStreamfs.createWriteStream分别读取和写入xml数据。现在要删除一些文本,您需要一个可读写的双工流。在 Node 0.10+ 中,您可以使用内置的 Transform Stream。下面是一个使用 Transform 流的简单代码:

    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-12-05
      • 1970-01-01
      • 2010-09-09
      • 2015-11-17
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      相关资源
      最近更新 更多