XML Selector Updated With Limited DOM Support

On Monday I published an update to XML Selector. This release (0.3.0) involved some significant refactoring and makes three important changes:

  1. The dependency on libxmljs has been removed

    As I had explained previously, interdependencies between C++ addons in Node.js turns out to be a really bad idea. Removing this dependency was necessary to provide a module that could be reliably built and run on a variety of platforms.

  2. Support for newer versions of the Node.js engine has been added

    The previous releases of XML Selector supported only the 0.10 version of Node. Significant V8 changes starting in 0.11 meant the module wouldn't even compile on newer versions. The use of nan now allows the module to build correctly for Node versions 0.10 through 0.12.

  3. The document representation is now based on the DOM

    As the README states, it is currently a subset of DOM Level 1, but the move away from libxmljs allows for document nodes to start implementing the DOM interface. The original hope was to offer interoperability with an existing, widely-used package. I think the experience of trying to do that has shown it's probably a better idea to offer something based on a standard.

Any general feedback on the updates is welcome in the comments below. Please report any problems as a GitHub issue.