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.
Installation via npm
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.