This project brings the DOMParser
1 and XMLSerializer
2 objects known
from the browser to node.js. Additionally functions from
document.implementation
, most importantly createDocument
3 are exposed
via this module.
XML Shim is ready to be browsified and therefore pretty useful for cross-platform projects.
- 0.x: Compatible with node versions supported by jsdom 0.11.x
- 1.x: Compatible with node versions supported by jsdom 3.x (0.10, 0.12)
- 2.x: Compatible with node versions supported by jsdom >= 3.x (4, 6, 8)
Note that jsdom >= 1.0 does not support CDATA sections. Hence xmlshim >= 1.x will fail to parse/write any CDATA sections.
var xmlshim = require('xmlshim');
var dp = new xmlshim.DOMParser();
var doc = dp.parseFromString('<hello-world/>', 'text/xml');
console.log(doc.firstChild.nodeName);
var xmlshim = require('xmlshim');
var xs = new xmlshim.XMLSerializer();
var doc = xmlshim.implementation.createDocument('', '', null);
var root = doc.createElement('hello-world');
doc.appendChild(root);
console.log(xs.serializeToString(doc));
Run the test suite under node.js:
make test
Run the test suite in firefox web browser (adapt the Makefile or point your browser manually at browser-test/test.html if you want to test in another browser):
make browser-test
XML Shim depends on jsdom4 for the DOM bits as well as a on the xmlwriter-branch5 of libxmljs6 for serialization and parsing. Browserify7 and nodeunit is required in order to build and run the browser test suite.