node package manager



node-libxml is a W3C-DOM XML Library for NodeJS with XPath and namespace support. It is implemented using the C based LibXML2 and the O3 component system. This is the only W3C-DOM standards based XML api for NodeJS we are aware of so your code should work in both the browser and nodejs. This project is used in production in many NodeJS based backend projects at


To use this library simply install it using npm:

npm install libxml


var xml = require("libxml");
var xmlData = "\
<?xml version=\"1.0\"?>\n\
   <book id=\"bk101\" available=\"true\">\n\
      <author>Gambardella, Matthew</author>\n\
      <title>XML Developer's Guide</title>\n\
      <description>An in-depth look at creating applications \n\
      with XML.</description>\n\
var doc = xml.parseFromString(xmlData);
console.log("parsed document:\n" + doc.xml);
var xpathNodeList = elem.selectNodes("descendant-or-self::node()[@available='true']");
console.log("first element of the xpath querry: " + xpathNodeList[0].getAttribute("id"));

Continuous Integration status

This project is tested with Travis CI Build Status


If you want to contribute to the source, please look at the main o3 repository.