Ninja Programmers Mindmeld

    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.

    Install

    npm i ez-xml

    DownloadsWeekly Downloads

    4

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    262 kB

    Total Files

    34

    Last publish

    Collaborators

    • graphtheory