You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

xml-query

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xml-query - npm Package Compare versions

Comparing version

to
1.1.0

build/index.js

8

package.json
{
"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": [

@@ -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