XPath vs. querySelectorAll

Benchmark created by Shadow Fox on


Preparation HTML

<div class='adiv'>
  test text inside a div!
</div>
<div class='adiv'>
  test text inside a div!
</div>
<div>
  <div>
    <div class='thediv'>
      test test test test test test
      <span>
        this is a span
      </span>
    </div>
  </div>
</div>
<div class='adiv'>
  test text inside a div!
</div>
<div class='adiv'>
  test text inside a div!
</div>
<div class='adiv'>
  test text inside a div!
</div>

Test runner

Ready to run.

Testing in
TestOps/sec
XPath 1
document.evaluate('./div/div/div[@class="thediv"]/span', document.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
ready
querySelectorAll 1
document.querySelectorAll('body > div > div > div[class="thediv"] > span');
ready
querySelectorAll 2
document.querySelectorAll('body div div div[class="thediv"] > span');
ready
querySelectorAll 3
document.body.querySelectorAll('div > div > div[class="thediv"] > span');
ready
XPath 2
document.evaluate('./div/div/div[@class="thediv"]/span', document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.