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