xml-writer

Native and full Javascript implementation of the classic XMLWriter class

XMLWriter for NodeJS

It's native and full javascript implementation of the classic XMLWriter class. The API is complete, flexible and tolerant. XML is still valid.

Installation

With npm do:

$ npm install xml-writer

Examples

    var XMLWriter = require('xml-writer');
    xw = new XMLWriter;
    xw.startDocument();
    xw.startElement('root');
    xw.writeAttribute('foo', 'value');
    xw.text('Some content');
    xw.endDocument();
 
    console.log(xw.toString());

Output:

<?xml version="1.0"?>
<root foo="value">Some content</root>

Tip: If you want your XML indented use new XMLWriter(true).

    var XMLWriter = require('xml-writer');
    xw = new XMLWriter;
    xw.startDocument().startElement('root').writeAttribute('foo', 'value').writeElement('tag', 'Some content');
 
    console.log(xw.toString());

Output:

<?xml version="1.0"?>
<root foo="value"><tag>Some content</tag></root>
    var XMLWriter = require('xml-writer');
    xw = new XMLWriter;
    xw.startElement('root').writeAttribute('foo', 'value').text('Some content');
 
    console.log(xw.toString());

Output:

<root foo="value">Some content</root>
    var XMLWriter = require('xml-writer'),
               fs = require('fs');
    var ws = fs.createWriteStream('/tmp/foo.xml');
    ws.on('close', function() {
            console.log(fs.readFileSync('/tmp/foo.xml', 'UTF-8'));
    });
    xw = new XMLWriter(false, function(stringencoding) {
            ws.write(string, encoding);
    });
    xw.startDocument('1.0', 'UTF-8').startElement(function() {
        return 'root';
    }).text(function() {
        return 'Some content';
    });
    ws.end();

Output:

<?xml version="1.0" encoding="UTF-8"?>
<root>Some content</root>

Tests

Use nodeunit to run the tests.

$ npm install nodeunit
$ nodeunit test

API Documentation

Create an new writer

Write text

Write a raw XML text

Create document tag

End current document

Write full element tag

Write full namespaced element tag

Create start namespaced element tag

Create start element tag

End current element

Write full attribute

Write full namespaced attribute

Create start namespaced attribute

Create start attribute

End attribute

Writes a PI

Create start PI tag

End current PI

Write a DocType

Create start DocType tag

End current DocType

Write full CDATA tag

Create start CDATA tag

End current CDATA

Write full comment tag

Create start comment

Create end comment

Also

  • https://github.com/minchenkov/simple-xml-writer
  • https://github.com/wezm/node-genx

License

MIT/X11