
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Super small library to retrieve values and attributes from the XML AST generated by xml-reader
Super small (~60 LOC) library for retrieving values and attributes
from the XML AST generated by xml-reader
with an easy-to-use jQuery-like interface.
npm install --save xml-query
The following XML will be used to illustrate all examples
<message id="1001" date="2016-06-19">
<from>Bob</from>
<to>Alice</to>
<subject>Hello</subject>
<body>Bla bla bla</body>
</message>
Let's read the XML using xml-reader.
const XmlReader = require('xml-reader');
const xml =
`<message id="1001" date="2016-06-19">
<from>Bob</from>
<to>Alice</to>
<subject>Hello</subject>
<body>Bla bla bla</body>
</message>`;
const ast = XmlReader.parseSync(xml);
const xmlQuery = require('xml-query');
// creating from single ast
const xq = xmlQuery(ast);
// creating from an array of asts
const xq = xmlQuery([ast, ...more]);
Retrieve one of the elements.
xmlQuery(ast).find('body').get(2); // returns the `subject` node
Find by name. Including top level nodes and all its children.
xmlQuery(ast).find('body'); // xmlQuery containing the body element
Returns true
if it has the given element. Faster than find()
because it stops on first occurence.
xmlQuery(ast).has('body'); // true
Get all attributes. If a name is provided, it returns the value for that key.
xmlQuery(ast).attr(); // {id: '1001', date: '2016-06-19'}
xmlQuery(ast).attr('id'); // '1001'
Returns a new xmlQuery object containing the children of the top level elements.
xmlQuery(ast).children();
Iterate over a xmlQuery object, executing a function for each element.
xmlQuery(ast).each(node => console.log(node.name));
// from
// to
// subject
// body
Iterate over a xmlQuery object, executing a function for each element. Returns the results in an array.
xmlQuery(ast).map(node => node.name); // ['from', 'to', 'subject', 'body']
Get the value of a property for the first element in the set.
xmlQuery(ast).prop('name'); // 'message'
Get the combined text contents of each element, including their descendants
xmlQuery(ast).find('subject').text(); // 'hello'
Returns a new XmlQuery object for the selected element by index
xmlQuery(ast).children().eq(2); // xmlQuery containing the 'subject' node
Returns a new XmlQuery object for the first element. Same as .eq(0)
xmlQuery(ast).children().first(); // xmlQuery containing the 'from' node
Returns a new XmlQuery object for the last element. Same as .eq(length - 1)
xmlQuery(ast).children().last(); // xmlQuery containing the 'body' node
Number of elements. Returns the same result as .size()
xmlQuery(ast).children().length; // 4
Number of elements. Returns the same result as .length
xmlQuery(ast).children().size(); // 4
MIT
FAQs
Super small library to retrieve values and attributes from the XML AST generated by xml-reader
The npm package xml-query receives a total of 944 weekly downloads. As such, xml-query popularity was classified as not popular.
We found that xml-query demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.