1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
var through2 = require('through2')
var htmlparser = require("htmlparser2");
var parser = new htmlparser.Parser({
onopentag: function(name, attribs){
if(name === "script" && attribs.type === "text/javascript"){
console.log("JS! Hooray!");
}
},
ontext: function(text){
console.log("-->", text);
},
onclosetag: function(tagname){
if(tagname === "script"){
console.log("That's it?!");
}
}
}, {decodeEntities: true});
// parser.write("Xyz <script type='text/javascript'>var foo = '<<bar>>';</ script>");
// parser.end();
var resumer = require('resumer'); // un stream sur lequel on peut ecrire du texte (source)
var s = resumer();
s.pipe(through2(function(d,e,cb){ // though2 pour montrer les donnes qui traversent le stream (transform)
console.log(d+'');
cb(null, d);
}))
.pipe(parser) // le parser html qui est branché en sortie de stream (sink)
.pipe(through2(function(c,e,cb){ // une autre transform branché en sink, mais qui provoque une erreur car parser n'est pas stream readable, documenter pour voir l'exemple fonctionner
console.log(c);
cb(null, c)
}))
s.write("Xyz <script type='text/javascript'>var foo = '<<bar>>';</ script>") // envoyer des données dans le stream |
Partager