LibXML bindings for node.js This package was forked as the original one is fairly unmaintained.
var libxmljs = require('libxmljs2');
var xml =
'<?xml version="1.0" encoding="UTF-8"?>' +
'<root>' +
'<child foo="bar">' +
'<grandchild baz="fizbuzz">grandchild content</grandchild>' +
'</child>' +
'<sibling>with content!</sibling>' +
'</root>';
var xmlDoc = libxmljs.parseXml(xml);
// xpath queries
var gchild = xmlDoc.get('//grandchild');
console.log(gchild.text()); // prints "grandchild content"
var children = xmlDoc.root().childNodes();
var child = children[0];
console.log(child.attr('foo').value()); // prints "bar"
Check out the wiki http://github.com/marudor/libxmljs2/wiki.
See the examples folder.
npm install libxmljs2
Start by checking out the open issues. Specifically the desired feature ones.
Make sure you have met the requirements for node-gyp. You DO NOT need to manually install node-gyp; it comes bundled with node.