Sha256: 3c0f3d607def00d8f9f86e41e971fe6648aeef2a56fe18d293a96f9c7139f0d8
Contents?: true
Size: 1.45 KB
Versions: 45
Compression:
Stored size: 1.45 KB
Contents
var sax = require("../lib/sax") , printer = sax.createStream(false, {lowercasetags:true, trim:true}) , fs = require("fs") function entity (str) { return str.replace('"', '"') } printer.tabstop = 2 printer.level = 0 printer.indent = function () { print("\n") for (var i = this.level; i > 0; i --) { for (var j = this.tabstop; j > 0; j --) { print(" ") } } } printer.on("opentag", function (tag) { this.indent() this.level ++ print("<"+tag.name) for (var i in tag.attributes) { print(" "+i+"=\""+entity(tag.attributes[i])+"\"") } print(">") }) printer.on("text", ontext) printer.on("doctype", ontext) function ontext (text) { this.indent() print(text) } printer.on("closetag", function (tag) { this.level -- this.indent() print("</"+tag+">") }) printer.on("cdata", function (data) { this.indent() print("<![CDATA["+data+"]]>") }) printer.on("comment", function (comment) { this.indent() print("<!--"+comment+"-->") }) printer.on("error", function (error) { console.error(error) throw error }) if (!process.argv[2]) { throw new Error("Please provide an xml file to prettify\n"+ "TODO: read from stdin or take a file") } var xmlfile = require("path").join(process.cwd(), process.argv[2]) var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" }) function print (c) { if (!process.stdout.write(c)) { fstr.pause() } } process.stdout.on("drain", function () { fstr.resume() }) fstr.pipe(printer)
Version data entries
45 entries across 45 versions & 3 rubygems