ez-xml
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

EZ-XML

Travis Coverage Status downloads npm

EZ-XML is a XML library that allows you to easily extract information from XML documents with XPath expressions.

NPM

Docs

Installation

EZ-XML is available as the ez-xml package on npm. Simply install it with

npm i ez-xml

Examples

You can find the following examples as a test here. Given the following XML 1.0 document

<!-- This is my collection of books -->
<library>
    <book name="Lifters guide to the galaxy">
        <price>42</price>
    </book>
    <book name="Baby owners manual" isbn="123">
        <price>35</price>
    </book>
    <book name="Wheel of time: The eye of the world">
        <price>50</price>
    </book>
</library>

Parsing a document

import {parse} from "ez-xml";
 
const doc = parse(`<library>...</library>`);

Getting the comment:

const comment = doc.find("/comment()")[0]; // This is my collection of books

Finding the second book in a few different ways (quite many ways of doing the same thing in XPath)

const book = doc.single("//book[last()]");
book.attr("name"); // Wheel of time: The eye of the world
book.text("price"); // 50

// is an abbrevation for traversing on the descendant-or-self axis. With XPath there are an infinite way of combinations for achieving the same result. For example, getting the third book can be achieved by this as well

doc.single("//book[3]") // NB: XPath starts counting from 1 instead of 0

Which is equivalent to

doc.single("/bookstore/book[(3 * 5 + 6) div 7]");

Finding a book by it's attribute

doc.find("//book[@name = 'Baby owners manual']/..");

Or by its price

doc.find("//book[price = 35]");

You can also combine predicates like

doc.find("//book[price > 30 and price < 40]");

Or searching for nodes that has certain attributes

doc.find("//book[@name and @isbn]");

Or finding all the books that has a position() greater than 2

doc.find("//book[position() > 2]");

And a lot of other fun combinations.

Licensing

ez-xml is released under the MIT license. See the LICENSE file for additional details.

Dependencies (0)

    Dev Dependencies (13)

    Package Sidebar

    Install

    npm i ez-xml

    Weekly Downloads

    1

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    262 kB

    Total Files

    34

    Last publish

    Collaborators

    • graphtheory