Comparing version
{ | ||
"name": "xml-query", | ||
"version": "1.0.1", | ||
"version": "1.1.0", | ||
"description": "Super small library to retrieve values and attributes from the XML AST generated by xml-reader", | ||
"main": "index.js", | ||
"main": "build/index.js", | ||
"scripts": { | ||
"test": "node test/test.js" | ||
"test": "node test/test.js", | ||
"pretest": "tsc", | ||
"prepublish": "npm test" | ||
}, | ||
@@ -9,0 +11,0 @@ "keywords": [ |
124
README.md
@@ -1,7 +0,125 @@ | ||
# XML QUERY | ||
# XML Query | ||
Super small library to retrieve values and attributes from the XML AST generated by xml-reader. | ||
Super small (~50 sloc) library to retrieve values and attributes from the XML AST generated by xml-reader. | ||
Easy-to-use jQuery-like interface. | ||
# Work in progress | ||
# WORK IN PROGRESS!!! | ||
Everything here is subject to change | ||
## Install | ||
```bash | ||
npm install --save xml-query | ||
``` | ||
## Usage | ||
### Reading xml streams/strings | ||
```javascript | ||
// given this xml | ||
const xml = | ||
`<message id="1001" date="2016-06-19"> | ||
<from>Bob</from> | ||
<to>Alice</to> | ||
<subject>Hello</subject> | ||
<body>Lorem ipsum dolor sit amet, consectetur adipiscing elit</body> | ||
</message>`; | ||
// we can use the xml-reader module to get the ast from the xml source | ||
const reader = xmlReader.create(); // see https://www.npmjs.com/package/xml-reader | ||
reader.on('done', ast => { | ||
// do something with the ast | ||
}); | ||
reader.parse(xml); | ||
``` | ||
Following examples will use this ast. | ||
### xmlQuery() | ||
```javascript | ||
const xmlQuery = require('xml-query'); | ||
// creating from single ast | ||
const xq = xmlQuery(ast); | ||
// creating from an array of asts | ||
const xq = xmlQuery([ast, ...more]); | ||
``` | ||
### .get() | ||
Retrieve one of the elements. | ||
```javascript | ||
xmlQuery(ast).find('body').get(2); // returns the `subject` node | ||
``` | ||
### .find() | ||
Find by name. Including top level nodes and all its children. | ||
```javascript | ||
xmlQuery(ast).find('body'); // returns a new xmlQuery object containing the body element | ||
``` | ||
### .attr() | ||
Get all attributes. If a name is provided, it returns the value for that key. | ||
```javascript | ||
xmlQuery(ast).attr(); // {id: '1001', date: '2016-06-19'} | ||
xmlQuery(ast).attr('id'); // '1001' | ||
``` | ||
### .children() | ||
Returns a new xmlQuery object containing the children of the top level elements. | ||
```javascript | ||
xmlQuery(ast).children(); | ||
``` | ||
### .each() | ||
Iterate over a xmlQuery object, executing a function for each element. | ||
```javascript | ||
xmlQuery(ast).each(node => console.log(node.name)); | ||
// prints: | ||
// from | ||
// to | ||
// subject | ||
// body | ||
``` | ||
### .map() | ||
Iterate over a xmlQuery object, executing a function for each element. Returns the results in an array. | ||
```javascript | ||
xmlQuery(ast).map(node => node.name); // ['from', 'to', 'subject', 'body'] | ||
``` | ||
### .prop() | ||
Get the value of a property for the first element in the set. | ||
```javascript | ||
xmlQuery(ast).prop('name'); // 'message' | ||
``` | ||
### .eq() | ||
### .first() | ||
### .last() | ||
### .length | ||
### .size() |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
126
1700%6123
-34.78%6
-14.29%50
-73.82%1
Infinity%