Node.js: How to create XML files Node.js: How to create XML files javascript javascript

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>