Differences from the upstream libxmljs
Currently the major difference between this library and the upstream libxmljs is that an XSD schema is parsed only once and cached for future uses. This reduces the problems associated with running a large number of XSD validations.
The eventual goal is to make this library completely context-aware, so it will play nicely with Node's worker threads and other future multi-isolate environments.
Libxmljs
LibXML bindings for node.js
var libxmljs = require("libxmljs");
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"
Support
- Docs - http://github.com/libxmljs/libxmljs/wiki
- Mailing list - http://groups.google.com/group/libxmljs
API and Examples
Check out the wiki http://github.com/libxmljs/libxmljs/wiki.
See the examples folder.
npm
Installation vianpm install libxmljs
Contribute
Start by checking out the open issues. Specifically the desired feature ones.
Requirements
Make sure you have met the requirements for node-gyp. You DO NOT need to manually install node-gyp; it comes bundled with node.