var genx = require('../lib/genx'); // Passing "true" to the constructor indicates we want to nicely format the output var w = new genx.Writer(true); w.on('data', function(data) { process.stdout.write(data); }); // Declare the elements and attributes up-front var ns = w.declareNamespace('http://www.w3.org/2005/Atom', ''); var feed = w.declareElement(ns, 'feed'); var title = w.declareElement(ns, 'title'); var link = w.declareElement(ns, 'link'); var updated = w.declareElement(ns, 'updated'); var author = w.declareElement(ns, 'author'); var name = w.declareElement(ns, 'name'); var id = w.declareElement(ns, 'id'); var entry = w.declareElement(ns, 'entry'); var summary = w.declareElement(ns, 'summary'); var href = w.declareAttribute('href'); // This is not a processing instruction and as such can't be generated by Genx process.stdout.write("\n"); w.startDocument() .startElement(feed) .startElement(title).addText("Example Feed").endElement() .startElement(link).addAttribute(href, "http://example.org/").endElement() .startElement(updated).addText("2003-12-13T18:30:02Z").endElement() .startElement(author) .startElement(name).addText("John Doe").endElement() .endElement() .startElement(id).addText("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6").endElement() .startElement(entry) .startElement(title).addText("Atom-Powered Robots Run Amok").endElement() .startElement(link).addAttribute(href, "http://example.org/2003/12/13/atom03").endElementInline() .startElement(id).addText("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a").endElement() .startElement(updated).addText("2003-12-13T18:30:02Z").endElement() .startElement(summary).addText("Some text.").endElement() .endElement() .endElement() .endDocument();