Node.js: How to create XML files
It looks like the xmlbuilder-js library may do this for you. If you have npm installed, you can npm install xmlbuilder
.
It will let you do this (taken from their example):
var builder = require('xmlbuilder');var doc = builder.create('root');doc.ele('xmlbuilder') .att('for', 'node-js') .ele('repo') .att('type', 'git') .txt('git://github.com/oozcitak/xmlbuilder-js.git') .up() .up() .ele('test') .txt('complete');console.log(doc.toString({ pretty: true }));
which will result in:
<root> <xmlbuilder for="node-js"> <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo> </xmlbuilder> <test>complete</test></root>
recent changes to xmlbuilder require root element name passed to create()
see working example
var builder = require('xmlbuilder');var doc = builder.create('root') .ele('xmlbuilder') .att('for', 'node-js') .ele('repo') .att('type', 'git') .txt('git://github.com/oozcitak/xmlbuilder-js.git') .up() .up() .ele('test') .txt('complete').end({ pretty: true });console.log(doc.toString());
xmlbuilder
was discontinued and replaced by xmlbuilder2
, which has been redesigned from the ground up to be fully conforming to the modern DOM specification.
To install xmlbuilder2
using npm
:
npm install xmlbuilder2
An example, from their home page, for creating a new XML file with it:
const { create } = require('xmlbuilder2');const root = create({ version: '1.0' }) .ele('root', { att: 'val' }) .ele('foo') .ele('bar').txt('foobar').up() .up() .ele('baz').up() .up();// convert the XML tree to stringconst xml = root.end({ prettyPrint: true });console.log(xml);
Will result in:
<?xml version="1.0"?><root att="val"> <foo> <bar>foobar</bar> </foo> <baz/></root>