JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3190889
  • Score
    100M100P100Q224633F

Xpath pure javascript implementation for node.js

Package Exports

  • xpath

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xpath) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

xpath.js

An xpath module for node, written in pure javascript.

Originally written by Cameron McCormack (blog).

Prepared as a node module by Yaron Naveh (blog).

Install

Install with npm:

npm install xpath.js

xpath.js is xml engine agnostic but I recommend to use xmldom:

npm install xmldom

Your first xpath:

    var select = require('xpath.js')
      , dom = require('xmldom').DOMParser

    var xml = "<book><title>Harry Potter</title></book>"
    var doc = new dom().parseFromString(xml)    
    var nodes = select(doc, "//title")
    console.log(nodes[0].localName + ": " + nodes[0].firstChild.data)
    console.log("node: " + nodes[0].toString())

-->

title: Harry Potter
Node: <title>Harry Potter</title>

Get text values directly

    var xml = "<book><title>Harry Potter</title></book>"
    var doc = new dom().parseFromString(xml)    
    var title = select(doc, "//title/text()")[0].data   
    console.log(title)

-->

Harry Potter

Namespaces

    var xml = "<book><title xmlns='myns'>Harry Potter</title></book>"
    var doc = new dom().parseFromString(xml)    
    var node = select(doc, "//*[local-name(.)='title' and namespace-uri(.)='myns/']")[0]
    console.log(node.namespaceURI)

-->

myns

Attributes

    var xml = "<book author='J. K. Rowling'><title>Harry Potter</title></book>"
    var doc = new dom().parseFromString(xml)    
    var author = select(doc, "/book/@author")[0].value    
    console.log(author)

-->

J. K. Rowling