Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

node-xml2js-xpath

A library for node-xml2js that allows querying the JSON object with XPath syntax.

build status

Install

Use npm:

npm install --save xml2js xml2js-xpath

Usage

To use this library, first you need to some xml2js results to parse. Example:

var xml2js = require("xml2js");
var xpath = require("xml2js-xpath");

xml2js.parseString('<root><element id="15">target</element></root>', function(err, json) {
  // find all elements: returns xml2js JSON of the element
  var matches = xpath.find(json, "//element");

  // find the first element, and get its id:
  var matches = xpath.evalFirst(json, "//element", "id");

  // Extract text representation of XML document:
  assert xpath.jsonText(json) === 'target';
});

See test cases for more examples.

XPath Support

Only a subset of the XPath standard is currently supported:

  • Descendent selectors (//h, /parent/offspring).
  • Attribute selectors (/parent/offspring[@attribute='value']).
  • Tag value selectors (/parent[offspring='value']).

Notable unsupported features (there are many more, but these are some I'd like to support at some point!):

  • Order predicate (/parent/offspring[1])
  • Arithmetic comparisons (/parent/offspring[@attribute > 12.5])
  • Boolean logic (/parent/offspring[@attribute1 or @attribute2])
  • Axes (/parent/following-sibling::offspring)
  • Functions ( last(), starts-with(), contains(), text(), etc).

https://www.w3.org/TR/1999/REC-xpath-19991116

https://codebeautify.org/Xpath-Tester