Skip to content
Wicked Good XPath as an NPM package
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
package.json
wgxpath.install.js
word_of_the_day.js

README.md

node-wgxpath

Wicked Good XPath is a fast implementation of document.createExpression and document.evaluate (DOM3-XPath) in pure Javascript.

Version

x.y.z: x.y refers to the Wicked Good XPath revision when wgxpath.install.js was built; z refers to any improvements to this package.

I'm pretty lazy, so I don't build Wicked Good XPath myself. When the pre-compiled wgxpath.install.js is updated, I'll update this package.

Installation

Install with npm:

npm install wgxpath

Make sure things are working:

node node_modules/wgxpath/word_of_the_day.js

Example

This example scrapes the Merriam-Webster Word of the Day. This code can also be found in word_of_the_day.js. Be sure to install jsdom 3.x before running the example.

$ npm install jsdom@"<4"
var wgxpath = require('wgxpath');
var jsdom = require('jsdom');

var url = 'http://www.merriam-webster.com/word-of-the-day/';
var expressionString = '//*[@id="content"]/div[3]/ul/li[1]/strong';

jsdom.env({
  html: url,
  done: function(errors, window) {
    wgxpath.install(window);
    var expression = window.document.createExpression(expressionString);
    var result = expression.evaluate(window.document,
        wgxpath.XPathResultType.STRING_TYPE);
    console.log('The Word of the Day is "' + result.stringValue + '."');
  }
});
You can’t perform that action at this time.