The xml node package offers “fast and simple Javascript-based XML generation”.
I had hoped that it would be as simple as:
var xml = require('xml'); var result = xml({ FOO: { BAR: "something" } });
But that only included the top level element:
<FOO />
After some RTFM, and a few false starts, it became clear that you need to represent each child node as an array of key value pairs:
xml({ FOO: [ {_attrs: { abra: "cadabra" }, { BAR: "something" }, { BAZ: "else" } ] });
Which should result in XML like this:
<FOO abra="cadabra"> <BAR>something</BAR> <BAZ>else</BAZ> </FOO>