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>